LinkedBlockingQueue - 无界 - 放阻塞?

时间:2015-09-24 19:05:53

标签: java multithreading

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

new LinkedBlockingQueue()

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

1 个答案:

答案 0 :(得分:5)

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

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