public class ContainNotSafeDemo {
public static void main(String[] args) {
/**
* 1.故障现象
* java.util.ConcurrentModificationException
* 2.导致原因
* 3.解决方案
* 3.1 new HashSet<>();
* 3.2 Collections.synchronizedSet(new HashSet<>());
* 3.3 new CopyOnWriteArraySet<>(new HashSet<>());
*/
Set<String> set = new CopyOnWriteArraySet<>(new HashSet<>());
set.forEach(System.out::println);
for (int i = 0; i < 30; i++) {
new Thread(() -> {
set.add(UUID.randomUUID().toString().substring(0,8));
System.out.println(set);
}, String.valueOf(i)).start();
}
}
}