Sobes.tech
Junior — Middle

Cum se implementează o structură de date Map sigură pentru fire într-un mediu multi-thread?

sobes.tech AI

Răspuns de la AI

Pentru a implementa o structură de date Map sigură pentru fire în Java, puteți utiliza clasa ConcurrentHashMap din pachetul java.util.concurrent. Aceasta asigură acces și modificare eficiente ale datelor într-un mediu multi-thread fără necesitatea sincronizării externe.

Exemplu de utilizare:

import java.util.concurrent.ConcurrentHashMap;

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

// Adăugarea unui element
map.put("key", 1);

// Obținerea unui element
Integer value = map.get("key");

// Actualizare sigură a valorii
map.computeIfPresent("key", (k, v) -> v + 1);

Alternativ, se poate folosi Collections.synchronizedMap(new HashMap<>()), dar ConcurrentHashMap este de obicei preferat pentru concurență înaltă.