我想知道在哪种情况下ConcurrentLinkedQueue无法从其集合中删除元素.该项目存在,它在集合内但是调用
SomeConcurrentLinkedQueue.remove(item)
Run Code Online (Sandbox Code Playgroud)
不会从集合中删除此项目.集合是锁定还是什么?
如果ConcurrentLinkedQueue.remove(item)返回false,则表示item不比较任何队列的条目.如果那不是您所期望的,请检查错误item的equals()方法.
另一种可能性(由@Louis Wasserman指出)是队列包含多次出现的item.ConcurrentLinkedQueue.remove(item)只会删除其中一个.