java并发编程汇总13:经典面试题-生产者消费者问题(三种实现)

直接看你听大佬的写的博客吧:一篇文章,让你彻底弄懂生产者--消费者问题

三种实现方式:wait/notify、Condition、BlockingQueue;

其中:wait/notify、Condition用法基本一致,要注意的细节就是:Condition一定要finally解锁;

BlockingQueue的话就是,由于BlockingQueue内部实现就附加了两个阻塞操作。即当队列已满时,阻塞向队列中插入数据的线程,直至队列中未满;当队列为空时,阻塞从队列中获取数据的线程,直至队列非空时为止。可以利用BlockingQueue实现生产者-消费者为题,阻塞队列完全可以充当共享数据区域,就可以很好的完成生产者和消费者线程之间的协作。

猜你喜欢

转载自blog.csdn.net/ScorpC/article/details/113931923