ConcurrentLinkedQueue不会删除

tur*_*oom 1 java

我想知道在哪种情况下ConcurrentLinkedQueue无法从其集合中删除元素.该项目存在,它在集合内但是调用

SomeConcurrentLinkedQueue.remove(item)
Run Code Online (Sandbox Code Playgroud)

不会从集合中删除此项目.集合是锁定还是什么?

NPE*_*NPE 6

如果ConcurrentLinkedQueue.remove(item)返回false,则表示item不比较任何队列的条目.如果那不是您所期望的,请检查错误itemequals()方法.

另一种可能性(由@Louis Wasserman指出)是队列包含多次出现的item.ConcurrentLinkedQueue.remove(item)只会删除其中一个.

  • 可能是您在列表中有多次出现该项目.`queue.remove(item)`只删除一个匹配项. (2认同)