Вот упрощенный пример:
Код: Выделить всё
Map map = new HashMap();
Runnable writer = () -> {
for (int i = 0; i < 1000; i++) {
map.put("key" + i, i);
}
};
Runnable reader = () -> {
for (int i = 0; i < 1000; i++) {
Integer value = map.get("key" + i);
if (value != null) {
System.out.println(value);
}
}
};
Thread t1 = new Thread(writer);
Thread t2 = new Thread(reader);
t1.start();
t2.start();
- Почему HashMap не работает в многопоточных сценариях?
- Какие внутренние проблемы вызывают повреждение данных или зависание данных?
- Какова лучшая поточно-безопасная альтернатива для частого чтения и записи?