LinkedBlockingQueue-java-队列已满
我有一个链接的阻塞队列,我围绕它进行协调LinkedBlockingQueue-java-队列已满,java,multithreading,Java,Multithreading,我有一个链接的阻塞队列,我围绕它进行协调 20个使用者线程和20个生产者线程的工作。 容量是队列的10(我目前正在测试) 但是,当我进入一个完整的队列时, 我在下面得到了这个错误。为什么会这样?JavaDoc说 在这种情况下,队列应该是阻塞的。 我是不是误解了什么 java.lang.IllegalStateException: Queue full at java.util.AbstractQueue.add(AbstractQueue.java:98) at java.uti
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)
您需要在
LinkedBlockingQueue
上使用put
将根据需要等待足够长的时间,直到空间可用offer
将返回一个表示成功或失败的布尔值。谢谢,我想我现在明白我的错误了。