gpt4 book ai didi

java - ArrayBlockingQueue - 它真的是并发的吗?

转载 作者:行者123 更新时间:2023-11-29 06:37:58 24 4
gpt4 key购买 nike

ArrayBlockingQueue 中没有一个操作与它的任何其他操作并发;他们总是拿同一把锁。即使对于 size() 方法,它也需要一个锁。

 public int size() {
final ReentrantLock lock = this.lock;
lock.lock();
try {
return count;
} finally {
lock.unlock();
}
}

虽然对于 LinkedBlockingQueue 的实现,您有两个锁:put 和 take。对于 size() 它使用 AtomicInteger 所以不需要锁。

所以我的问题是:为什么这个实现在并发包中 - ArrayBlockingQueue 真的是并发的吗?

最佳答案

ArrayBlockingQueuejava.util.concurrent 中包,因为多个线程可以同时使用该对象而不会出现线程安全问题。

同时使用多种方法的能力不是对象的用途。

关于java - ArrayBlockingQueue - 它真的是并发的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17578228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com