ArrayBlockingQueue 的锁是读写不分离的。 而 LinkedBlockingQueue 的锁是读写分离的。这样就可以同时读和写了。 为什么要这么设计? 网上搜了一大圈答案都不太满意。
这里还有对 ArrayBlockingQueue 进行改造的。 https://blog.csdn.net/icepigeon314/article/details/93792519 貌似改造后效果还更好了, 为啥 Java 不一开始就这么设计?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.