缓冲是什么意思?

我到处都看到“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

    上一篇: What does it mean by buffer?

    下一篇: Using read() directly into a C++ std:vector