多线程设计模式——Producer-Consumer生产者消费者模式

本文介绍了Producer-Consumer模式,用于协调生产者和消费者线程之间的关系。通过中间的存储位置,即通道,来解决生产者生产的产品供消费者使用的问题。文章提供了例子代码,展示了如何在Java中实现此模式,并讨论了模式的评价与实现考量,包括管道积压、工作窃取算法、线程停止以及高性能高可靠性等挑战。
摘要由CSDN通过智能技术生成

这些都是根据我最近看的《Java实战指南多线程编程(设计模式篇)》所得整理。

模式名称

Producer-Consumer生产者消费者模式

模式面对的问题

有的线程的结果是另外一些线程的原料,也就是说,一些线程是生产者,另外一些线程是消费者,消费者需要生产者生产的东西才能正常运行,协调两者的关系成了一个大的问题。

解决思路

有一个中间的存储位置,用来存储生产者生产出来的东西,称之为通道。
Producer生产者
Product生产者所生产的任务
Channel通道的抽象
BlockingQueueChannel基于阻塞队列的Channel实现
Consumer消费者

Created with Raphaël 2.1.0 Client Client
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值