缓冲是什么意思?

我到处都看到“BUFFER”这个词,但我无法把握到底是什么。

  1. 有人请解释什么是外行人的语言缓冲区?
  2. 什么时候使用?
  3. 它是如何使用的?

想象一下,你正在吃碗里的糖果。 你定期拿一块。 为了防止碗被挤出,有人可能会在碗倒空之前将碗重新装满,所以当你想拿一块时,碗里有糖果。

碗充当你和糖果袋之间的缓冲区。

如果您在线观看电影,networking服务会持续下载5分钟左右的缓冲区,这样您的电脑就不必在观看电影时下载(这会导致挂起)。

术语“缓冲区”是一个非常通用的术语,并不特定于IT或CS。 这是一个临时存储的地方,以缓解input速度和输出速度之间的差异。 当生产者比消费者更快时,生产者可以继续将输出存储在缓冲器中。 当消费者加速时,它可以从缓冲区中读取。 中间有缓冲器来填补空白。


如果你把http://en.wiktionary.org/wiki/buffer的定义平均,我想你会明白的。;

为了certificate我们确实做了“不得不走路十英里以为每天都要上学的雪”,请参阅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)读取的数据直到写入; 那么缓冲区被重新使用。

有更复杂的缓冲区scheme,例如循环缓冲区 ,其中使用了一些有限数量的缓冲区,一个接一个; 一旦缓冲区全部满了,索引就会“回绕”,以便第一个被重新使用。

缓冲意味着“临时存储”。 缓冲区在计算中非常重要,因为互连的设备和系统很less与另一个“同步”,所以当信息从一个系统发送到另一个系统时,在某个地方等待接收系统准备就绪。

真的,这取决于每种情况下的背景,因为没有一个定义 – 但是一般来说缓冲区是暂时持有某种东西的地方。 我能想到的最好的现实世界的比喻是等待区域。 计算中一个简单的例子就是缓冲区是指用于临时存储数据的RAM的一部分。

缓冲区是临时占位符(在很多编程语言中的variables)在内存(内存/磁盘)上的数据可以倾倒,然后可以完成处理。

术语“缓冲区”是一个非常通用的术语,并不特定于IT或CS。 这是一个临时存储的地方,以减lessinput速度和输出速度之间的差异。 当生产者比消费者更快时,生产者可以继续将输出存储在缓冲器中。 当消费者加速时,它可以从缓冲区中读取。 中间有缓冲器来填补空白。

缓冲区是临时占位符(在很多编程语言中的variables)在内存(内存/磁盘)上的数据可以倾倒,然后可以完成处理。

Buffering有很多好处,例如允许事件并行发生,提高IO性能等。

如果没有正确使用,如缓冲区溢出,缓冲区下溢等,它也有许多缺点。

C字符缓冲区的例子。

char * buffer1 = calloc(5,sizeof(char));

char * buffer2 = calloc(15,sizeof(char));

缓冲区是硬件设备或程序进程共享的数据区,以不同的速度或不同的优先级进行操作。 缓冲区允许每个设备或进程在不被另一个阻挡的情况下运行。 为了使缓冲区有效,缓冲区的大小以及将数据移入和移出缓冲区的algorithm。

缓冲区是一个“中点控制点”,但并不是为了加快活动的速度,而是为了支持单独活动的协调。

该术语既用于编程,也用于硬件。 在编程中,缓冲有时候意味着需要从最终的预定位置对数据进行筛选,以便在移动到常规文件或数据库之前对其进行编辑或以其他方式进行处理。