缓冲是什么意思?
我到处都看到“BUFFER”这个词,但我无法掌握它到底是什么。
想象一下,你正在从碗里吃糖果。 你定期拿一块。 为了防止碗溢出,有人可能会在碗倒空之前重新装满碗,所以当你想再拿一块时,碗里有糖果。
碗充当你和糖果袋之间的缓冲区。
如果您在线观看电影,网络服务会持续下载5分钟左右的缓冲区,这样您的电脑就不必在观看电影时下载电影(这会导致挂起)。
术语“缓冲区”是一个非常通用的术语,并非特定于IT或CS。 这是暂时存储某些东西的地方,以减轻输入速度和输出速度之间的差异。 当生产者比消费者更快时,生产者可以继续将输出存储在缓冲器中。 当消费者加速时,它可以从缓冲区中读取。 中间有缓冲区来填补空白。
如果你将http://en.wiktionary.org/wiki/buffer的定义平均,我想你会明白。
为了证明我们确实“不得不走上十英里才想到每天要上学的雪”,请参阅http://antiquesilicon.com/library/bitsavers/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol04/AA-0974G- TB_monCallsVol1.pdf,11.9节,“使用缓冲I / O”,书签11-24。 如果你遭受噩梦,不要阅读。
缓冲区就是用来保存数据的一块内存。 从一般意义上讲,它通常是一次性加载的单个内存块,然后在一个或多个Perchik的“糖果碗”示例中清空。 例如,在C程序中,您可能有:
#define BUFSIZE 1024
char buffer[BUFSIZE];
size_t len = ;
// ... later
while((len=read(STDIN, &buffer, BUFSIZE)) > 0)
write(STDOUT, buffer, len);
...这是cp(1)的最小版本。 这里,缓冲区数组用于存储read(2)读取的数据,直到它被写入; 那么缓冲区被重新使用。
有更复杂的缓冲区方案,例如一个循环缓冲区,其中使用了一些有限数量的缓冲区,一个接一个; 一旦缓冲区全部满了,索引将“环绕”,以便第一个被重新使用。
链接地址: http://www.djcxy.com/p/91699.html