LinkedBlockingQueue关键点:
0. 单链表
1. ReentrantLock重入锁(两把,入队和出队各一把)
2. 入队方法add/put/offer
3. 出队方法take(等)/poll(不等)
4. romove方法
5. size的统计
LinkedBlockingDueue的关键点:
0. 双向链表
1. 功能全覆盖
2. 可做堆栈使用
3. 是个容量可选(最大为Integer.MAX_VALUE)的阻塞队列,且线程安全
4. ReentrantLock实现不过只有一把锁
5. 出/入队方法一大堆
总结如斯:
首先,二者都是线程安全以及阻塞等待的并发容器类。其实LinkedBlockingDueue是LinkedBlockingQueue的升级版,不仅在使用上最大程度的方便用户,还在底层做一些细微的调整。如使用双链表、把两个重入锁改成一个等。