直接看你听大佬的写的博客吧:一篇文章,让你彻底弄懂生产者--消费者问题
三种实现方式:wait/notify、Condition、BlockingQueue;
其中:wait/notify、Condition用法基本一致,要注意的细节就是:Condition一定要finally解锁;
BlockingQueue的话就是,由于BlockingQueue内部实现就附加了两个阻塞操作。即当队列已满时,阻塞向队列中插入数据的线程,直至队列中未满;当队列为空时,阻塞从队列中获取数据的线程,直至队列非空时为止。可以利用BlockingQueue实现生产者-消费者为题,阻塞队列完全可以充当共享数据区域,就可以很好的完成生产者和消费者线程之间的协作。
本文深入探讨生产者-消费者问题的三种解决方式:wait/notify、Condition和BlockingQueue。重点讲解BlockingQueue如何通过内部的阻塞操作,在队列满时阻止生产者,空时阻止消费者,实现线程间的高效协作。
403

被折叠的 条评论
为什么被折叠?



