gpt4 book ai didi

java - ArrayBlockingQueue add 方法是即时的吗?

转载 作者:行者123 更新时间:2023-12-02 02:23:06 25 4
gpt4 key购买 nike

对于 Java 中的 ArrayBlockingQueue,queue.add(element) 是否会锁定它所在的线程?我有一个运行着数十个线程的应用程序,它们会将所有信息放入一个 ArrayBlockingQueue 中。线程不能承受任何短时间的锁定。如果他们都将对象放入队列中,add方法会立即继续并让队列将来将对象放入其自身中还是会等到它实际放入队列中?

最佳答案

ArrayBlockingQueue 是 Queue 的实现,它还支持在检索元素时等待队列变为非空的操作,以及在存储元素时等待队列中的空间变为可用的操作。

如果可以在不超过队列容量的情况下立即执行此操作,add 方法会在该队列的尾部插入指定的元素,成功时返回 true,如果队列已满,则抛出 IllegalStateException。

尝试将元素放入已满的队列中将导致操作阻塞;尝试从空队列中获取元素同样会被阻止。

容量一旦创建就无法更改。

关于java - ArrayBlockingQueue add 方法是即时的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200626/

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