什么是生产者?
生产者是负责生产数据的模块。(这里的模块可以是:方法、对象、线程、进程)
什么是消费者?
消费者是负责处理数据的模块。(这里的模块可以是:方法、对象、线程、进程)
什么是缓冲区?
缓冲区是缓存数据的模块,缓冲区就像生产者与消费者“数据”往来的仓库。
缓冲区是实现并发的核心,缓冲区的设置有三个好处:
1、实现线程的并发协作
2、解耦了生产者和消费者
3、提高线程效率
总结:
生产者和消费者可以通俗的理解成“摘水果的农民”和“水果店铺”,缓冲区就是“供应商”,缓冲区保证了消费者一定会有水果卖,而不会出现在供应不足的情况下仍然卖水果。