Java并发编程系列21:多线程之生产者和消费者模式(使用BlockingQueue实现)

本文介绍了Java并发编程中使用BlockingQueue实现生产者-消费者模式。 BlockingQueue是一个线程安全的数据结构,提供在队列满时阻塞插入操作,队列空时阻塞删除操作的能力。文中详细解释了BlockingQueue的关键方法,如put、take和drainTo,并给出了代码示例和执行结果。

       生产者消费者模型一般用于将复杂的业务逻辑,多个线程来同时处理以提升系统的运行效率,典型的案例就是阻塞队列。

1、BlockingQueue介绍

       阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构,BlockingQueue提供了线程安全的队列访问方式:当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于BlockingQueue实现的。

参考:https://blog.csdn.net/tomcat_2014/article/details/60135152

2、BlockingQueue中的方法

BlockingQueue是Queue的子接口,BlockingQueue中特有的方法:
(1)void put(E e) throws InterruptedException
  把e添加进BlockingQueue中,如果BlockingQueue中没有空间,则调用线程被阻塞,进入等待状态,直到BlockingQueue中有空间再继续
(2)void take() throws In

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁儿测试开发

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值