生产者消费者问题算法的实现
《生产者与消费者问题算法实现》
设计思想
因为有多个缓冲区,所以生产者线程没有必要在生成新的数据之前等待最后一个数据被消费者线程处理完毕。同样,消费者线程并不一定每次只能处理一个数据。在多缓冲区机制下,线程之间不必互相等待形成死锁,因而提高了效率。
多个缓冲区就好像使用一条传送带替代托架,传送带上一次可以放多个产品。生产者在缓冲区尾加入数据,而消费者则在缓冲区头读取数据。当缓冲区满的时候,缓冲区就上锁并等待消费者线程读取数据;每一个生产或消费动作使得传送带向前移动一个单位,因而,消费者线程读取数据的顺序和数据产生顺序是相同的。
可以引入一个count计数器来表示已经被使用的缓冲区数
用户评论
qqchore87275 2020-05-31 07:35:06
算法不是很完美,不过也算不错的参考
secure_84631 2020-05-31 07:35:06
资源不错,得到了应用
程花花 2020-05-31 07:35:06
缓冲区有多个,而且刷新速度慢点就好了,生产者线程没有必要在生成新的数据之前等待最后一个数据被消费者线程处理完毕
callmayue 2020-05-31 07:35:06
能够成功编译运行。正是所需要的。谢谢共享。
produce993 2020-05-31 07:35:06
还不错,挺好的