1 Concurrent并发包
BlockingQueue接口,实现类:ArrayBlockingQueue、LinkedBlockingQueue。
2 解决问题:
队列无数据,消费线程都会被自动阻塞(挂起);队列满数据,生产线程自动阻塞(挂起)
3 注意:
ArrayBlockingQueue存和取共用同一个锁对象,原因:轻巧,分离锁性能不占便宜;默认非公平锁,公平锁需修改。
LinkedBlockingQueue存和取采用独立的锁,可并行操作队列中的数据;默认大小Integer.MAX_VALUE,需初始化容量大小,避免存速度>取速度而内存耗尽。