我正在与一位同事进行激烈的讨论,因为他不想承认使用 Java 包中的现有类比编写自己的类更好。
我们希望以线程安全的方式访问集合,以便迭代器也可以工作。
我找到了这个类ConcurrentSkipListSet
,但它需要我实现Comparable
我们不需要的接口。他认为这比编写整个同步的东西更糟糕。我拒绝。
有没有比 ConcurrentSkipListSet 更好的 Java 类不能让我实现Comparable
?
我正在与一位同事进行激烈的讨论,因为他不想承认使用 Java 包中的现有类比编写自己的类更好。
我们希望以线程安全的方式访问集合,以便迭代器也可以工作。
我找到了这个类ConcurrentSkipListSet
,但它需要我实现Comparable
我们不需要的接口。他认为这比编写整个同步的东西更糟糕。我拒绝。
有没有比 ConcurrentSkipListSet 更好的 Java 类不能让我实现Comparable
?
要以线程安全的方式访问 Set,最好使用Collections.synchronizedSet
然后同步访问Set
for 迭代:
Set<Object> s = Collections.synchronizedSet(new HashSet<>());
synchronized (s) {
Iterator<Object> i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}