Java并发编程 -链表阻塞队列和数组阻塞队列的异同
相同1、LinkedBlockingQueue和ArrayBlockingQueue都实现了BlockingQueue接口;
2、LinkedBlockingQueue和ArrayBlockingQueue都是可阻塞的队列
内部都是使用ReentrantLock和Condition来保证生产和消费的同步;
当队列为空 , 消费者线程被阻塞;当队列装满 , 生产者线程被阻塞;
LinkedBlockingQueue中的锁是分离的 , 生产者的锁PutLock , 消费者的锁takeLock
而ArrayBlockingQueue生产者和消费者使用的是同一把锁;
2、他们的底层实现机制也不同
【Java并发编程 -链表阻塞队列和数组阻塞队列的异同】LinkedBlockingQueue内部维护的是一个链表结构
LinkedBlockingQueue有默认的容量大小为:Integer.MAX_VALUE , 当然也可以传入指定的容量大小
转载自:
推荐阅读
- 糖尿病并发症|糖尿病人的胖与瘦,哪个更容易发生并发症?
- 糖尿病|【节气】春分前后糖尿病友重点预防这种并发症
- 糖尿病并发症|JMT日本常见病治疗-糖尿病并发症的原因和危险的三大并发症
- 空腹血糖|血糖超出这个值,就是糖尿病,血糖一直高,诱发五种并发症
- 糖尿病并发症|糖尿病友具备这四点知识,血糖控得好有效预防并发症!
- 胃溃疡|谁在你的胃里“打洞”?胃溃疡的4大“夺命”并发症,千万别大意
- 糖尿病并发症|身体收到这4个“信号”,可能是糖尿病“缠身”了
- 细胞|Sci Adv:重编程干细胞可有效治疗乳腺癌细胞向脑部转移
- 糖尿病并发症|糖尿病的5个控制指标,看看自己达标了吗?
- 尿酸高|一旦查出尿酸高,要防并发症,牢记这4条,降低尿酸不是难事
