Написал следующий тестовый код для моего понимания на Concurrent
HashMap
Моя проблема в том, что код не работает должным образом, и я думаю, что он заканчивается бесконечным циклом, где JVM
не завершается.
public class Test {
public static void main(String[] args) {
Map<Long, Long> map = new ConcurrentHashMap<>();
map.put(0L, 0L);
map.put((1L << 32) + 1, 0L);
for (long key : map.keySet()) {
map.put(key, map.remove(key));
}
}
}
Я не уверен, почему это происходит, может кто-нибудь помочь мне понять это поведение.