LinkedBlockingQueue的putLock和takeLock

来源:10-7 用条件对象实现生产者模式

煮沧海

2021-01-17

悟空老师,我看linkedBlockingQueue里面是用putLock和takeLock来做notEmptyCondition和notFullCondition的最初的锁的,一开始我以为一个lock只能new一个condition。看了demo才知道可以new多个condition。想blockingqueue的源码用俩个锁,是为了支撑更复杂的场景,更加有效率一点吗

写回答

1回答

煮沧海

提问者

2021-01-17

是不是和数据量有关系?如果是一个lock的话,大量且同时的生产和消费就会出现效率低,慢的情况。如果分开俩个锁,处理速度就会快很多

0
1
悟空
恩是的,两个锁可以进一步降低冲突的概率。
2021-01-18
共1条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程