java - LinkedBlockingQueue - 无界 - 放置阻塞?

标签 java multithreading

我有两个简单的问题。我有一个 LinkedBlockingQueue,我将其简单地创建为

新的 LinkedBlockingQueue()

所以我认为这保证是无限的,对吗?
如果确实如此,那么说在此队列实例上调用方法 put 时永远不会阻塞是否正确?

最佳答案

Java 文档指定 no-arg constructor invocation将产生 Integer.MAX_VALUE 的容量,该容量很大,但实际上并不是无限的,因此队列是有界的(但出于实际目的,也可能不是)。

put仅当空间需要变得可用时,方法才会阻塞,这意味着如果队列已经有等于容量的元素数量,它将阻塞。

关于java - LinkedBlockingQueue - 无界 - 放置阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32769031/

相关文章:

java - 如何根据屏幕上下文监听特定的 Java 按键事件?

java - 在 Launch4j 中需要帮助

java - 在编译时或运行时编程

java - 在 Eclipse 中,文本超出页面范围

c - Pthreads 在循环完成之前返回,工作似乎在后台继续

Android - 更改 Activity 时的多线程问题

iphone - 使用线程解决第三方 iphone 库中的内存泄漏问题

java - Maven 发布属性

java - 如果要同步读,是否还需要同步写?

c - 分离的线程不会同时运行