Junior — Middle
Pouvez-vous donner des exemples de structures de données collectables garantissant la sécurité des threads?
sobes.tech IA
Réponse de l'IA
En Java, il existe plusieurs collections qui garantissent la sécurité en environnement multithread :
Vector— un équivalent thread-safe deArrayList, tous ses méthodes sont synchronisées.Hashtable— un équivalent thread-safe deHashMap.- Collections du package
java.util.concurrent:ConcurrentHashMap— une table de hachage thread-safe et haute performance.CopyOnWriteArrayList— une liste thread-safe, idéale pour les scénarios avec des lectures fréquentes et des modifications rares.BlockingQueueet ses implémentations (LinkedBlockingQueue,ArrayBlockingQueue) — des queues thread-safe avec opérations bloquantes.
Exemple d'utilisation de ConcurrentHashMap :
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");
Ces structures permettent de travailler en toute sécurité avec des collections depuis plusieurs threads sans synchronisation externe.