Sobes.tech
Junior — Middle

Jak zaimplementować bezpieczną dla wątków strukturę danych Map w środowisku wielowątkowym?

sobes.tech AI

Odpowiedź od AI

Aby zaimplementować bezpieczną dla wątków strukturę danych Map w Java, można użyć klasy ConcurrentHashMap z pakietu java.util.concurrent. Zapewnia ona efektywny dostęp i modyfikację danych w środowisku wielowątkowym bez konieczności zewnętrznej synchronizacji.

Przykład użycia:

import java.util.concurrent.ConcurrentHashMap;

ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();

// Dodanie elementu
map.put("key", 1);

// Pobranie elementu
Integer value = map.get("key");

// Bezpieczna aktualizacja wartości
map.computeIfPresent("key", (k, v) -> v + 1);

Alternatywnie można użyć Collections.synchronizedMap(new HashMap<>()), ale ConcurrentHashMap jest zwykle preferowany dla wysokiej konkurencyjności.