我有一个
Set
我用多种方法给它添加了独特的元素
Threads
.在每次跑步中
设置
从295到299不等。
Set<String> ids = new HashSet<>();
Thread t1 = new Thread(() -> {
for (int i = 0; i < 100; i++) {
ids.add("Id" + i);
}
});
Thread t2 = new Thread(() -> {
for (int i = 100; i < 200; i++) {
ids.add("Id" + i);
}
});
Thread t3 = new Thread(() -> {
for (int i = 200; i < 300; i++) {
ids.add("Id" + i);
}
});
t1.start();
t2.start();
t3.start();
t1.join();
t2.join();
t3.join();
System.out.println(ids.size());
虽然我没有使用
thread-safe
集合我添加独特元素时,我希望大小应该始终保持一致。
我知道如何解决这个问题(使用
Set<String> ids = ConcurrentHashMap.newKeySet();
),但我试图理解为什么我的尺码不一致?