生产者消费者多线程安全容器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinaihalo/article/details/82431520

1 Concurrent并发包

BlockingQueue接口,实现类:ArrayBlockingQueue、LinkedBlockingQueue。

2 解决问题:

队列无数据,消费线程都会被自动阻塞(挂起);队列满数据,生产线程自动阻塞(挂起)

3 注意:

ArrayBlockingQueue存和取共用同一个锁对象,原因:轻巧,分离锁性能不占便宜;默认非公平锁,公平锁需修改。
LinkedBlockingQueue存和取采用独立的锁,可并行操作队列中的数据;默认大小Integer.MAX_VALUE,需初始化容量大小,避免存速度>取速度而内存耗尽。

猜你喜欢

转载自blog.csdn.net/sinaihalo/article/details/82431520