生产者消费者模型

Posted tingxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生产者消费者模型相关的知识,希望对你有一定的参考价值。

生产者消费者模型

[目的]

解决并发编程中的绝大部分并发问题

【组成要素】

生产者:负责生产数据或任务

消费者:负责消费数据或者任务

容器:生产者和消费者进行通讯的媒介(阻塞队列)来达到解耦目的

[主要方法]

容器:q=queue.Queue()

生产者:q.put(product/tack)

    q.jion() 阻塞至队列中所有的元素都被接收和处理完毕。

        当条目添加到队列的时候,未完成任务的计数就会增加。当未完成计数降到零的时候, join() 阻塞被解除。

消费者:q.get(product/tack) 获取一个任务

    q.task_done() 表示前面排队的任务已经被完成

    表示这个条目已经被回收,该条目所有工作已经完成,未完成计数就会减少。

以上是关于生产者消费者模型的主要内容,如果未能解决你的问题,请参考以下文章

golang生产者消费者模型示例代码

LINUX多线程(生产者消费者模型,POXIS信号量)

转: Java并发编程之十三:生产者—消费者模型(含代码)

Java生产消费者模型——代码解析

生产者消费者模型

生产者消费者模型-Java代码实现