Middle
Quelles structures de données en Java sont synchronisées et lesquelles ne le sont pas?
sobes.tech IA
Réponse de l'IA
En Java, certaines structures de données sont synchronisées (sûres pour les threads), et d'autres ne le sont pas.
Synchronisées :
Vector— équivalent synchronisé deArrayList.Hashtable— équivalent synchronisé deHashMap.Stack— hérite deVector, donc également synchronisé.- Collections enveloppées via
Collections.synchronizedList(),synchronizedMap(), etc. - Classes du paquet
java.util.concurrent, par exemple,ConcurrentHashMap,CopyOnWriteArrayList.
Non synchronisées :
ArrayListLinkedListHashMapHashSet
Si vous souhaitez utiliser une collection non synchronisée dans un environnement multithread, vous pouvez l'envelopper dans une version synchronisée à l'aide des méthodes de Collections ou utiliser des classes spécialisées de java.util.concurrent.
Exemple :
List<String> list = Collections.synchronizedList(new ArrayList<>());