LinkedBlockingQueue - java - 队列已满

时间:2015-09-24 08:04:31

标签: java multithreading

我有一个链接的阻塞队列,我可以在其周围进行协调 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 个答案:

答案 0 :(得分:7)

您需要在LinkedBlockingQueue上使用putput将在必要时等待,直到空间可用。 offer将返回一个表示成功或失败的布尔值。