LinkedBlockingQueue - Java - 队列已满

6

我有一个链式阻塞队列,我在其中协调20个消费者线程和20个生产者线程的工作。队列的容量为10(目前我只是在测试)。但是,当我向满队列中放入元素时,与其阻塞等待,我会得到下面的错误。为什么会这样呢?JavaDoc文档说在这种情况下队列应该是阻塞的。难道我理解错了什么吗?

java.lang.IllegalStateException: Queue full
    at java.util.AbstractQueue.add(AbstractQueue.java:98)
    at java.util.AbstractQueue.addAll(AbstractQueue.java:187)
1个回答

11
您需要在 LinkedBlockingQueue 上使用 put 方法。put 方法会一直等待,直到有足够的空间。而 offer 方法则会返回一个表示成功或失败的布尔值。请保留原文中的 HTML 标签。

谢谢,我现在想我看到了我的错误。 - peter.petrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接