下图描述了 FIFO 缓冲区:
所以当写入 FIFO 缓冲区的数据速度比读取数据的速度快时,缓冲区就存在了。
但我不明白一件事。经过一定时间后,最终 FIFO 缓冲区的所有空闲缓冲区是否都会耗尽?因为写入速度比读取速度快。
如果它会停滞不前,那么使用它的目的是什么?
鉴于没有可讨论的实现,这都是理论上的。所以,是的,根据资源以及生产和消耗的速度,缓冲资源可能会耗尽。
缓冲区耗尽的结果取决于那里的实现和可能的设置。
缓冲不会使消费更快,但它允许消费者不那么紧急地处理传入的数据,从而允许爆发性的生产和/或消费。
FIFO是处理数据的抽象描述。如何处理边缘情况和限制的确切细节是实现细节。特定的实现可能会阻止进一步的输入,直到缓冲区中有更多空间,或者它可能会在缓冲区满后忽略所有内容,或者可能会失败/终止并显示错误消息。这完全取决于实施。