Java队列和线程安全

时间:2014-04-13 10:14:41

标签: java thread-safety queue

我正在寻找一个不允许重复元素的队列(旧的重复元素总是被删除,并且在队列的末尾是新添加的新元素)。并且是线程安全的。一个线程正在向队列添加元素,第二个线程正在读取和删除元素。 在标准的java库中,还是在guava / apache中有用吗?

1 个答案:

答案 0 :(得分:2)

例如,您可以使用Guava' Forwarding{,Blocking}{Queue,Deque}

您将要执行的操作HashSet作为实施的一部分,您将尝试.add()个新元素;如果.add()返回false,请不要添加到代理。

当然,当你从队列中删除元素时,不要忘记来自集合的.remove()

(这假设通过"重复"在这里你的意思是"是.equals()&#34 ;;如果另一方面你使用PriorityQueue你想要的使用TreeSet代替