基本概念

- 合作进程的范例:在这个问题中,有两类进程,生产者和消费者,它们共同工作以完成任务。
- 生产者进程负责生成信息,消费者进程则消费这些信息。
- compiler-assembler, Web server – client

解决方案

最常见的方法是使用缓冲区,这是一个可以由生产者填充和消费者取出项目的共享内存区域。
- unbounded-buffer
无界缓冲区
缓冲区的大小是没有固定限制的。理论上,生产者可以无限制地生成项目,而不会因为缓冲区满了而必须停下来。
- bounded-buffer
有界缓冲区
设定了一个固定的缓冲区大小。这要求生产者在缓冲区满时停止生产,直到消费者消费了一些项目并释放了空间。

关于代码
Counter

问题描述:我们想要解决的是一个生产者-消费者问题,其中所有的缓冲区都被填满。
