Pouvons-nous utiliser le hashmap dans un environnement multithread ?

Table des matières:

Pouvons-nous utiliser le hashmap dans un environnement multithread ?
Pouvons-nous utiliser le hashmap dans un environnement multithread ?
Anonim

Qu'est-ce qui ne va pas avec HashMap dans un environnement multithread ? … C'est un problème si plusieurs threads s'ajoutent à la même instance HashMap sans qu'elle soit synchronisée. Même si un seul thread modifie un HashMap et que d'autres threads lisent à partir de cette même carte sans synchronisation, vous rencontrerez des problèmes.

Pouvez-vous utiliser un HashMap dans un environnement multithread ?

Vous devez vous assurer que: toutes les mises à jour de la HashMap sont terminées avant que les threads ne soient instanciés et que le thread qui crée la carte bifurque également les threads. Les threads n'utilisent que HashMap en mode lecture seule - soit get, soit itération sans suppression. Il n'y a pas de threads mettant à jour la carte.

Pourquoi HashMap ne doit pas être utilisé dans un environnement multithread, peut-il également provoquer une boucle infinie ?

La capacité par défaut de HashMap est de 16 et le facteur de charge est de 0,75, ce qui signifie que HashMap doublera sa capacité lorsque la 12e paire clé-valeur entrera dans la carte (160,75=12). Lorsque 2 threads tentent d'accéder simultanément à HashMap, vous pouvez alors rencontrer une boucle infinie. Thread 1 et Thread 2 essaient de mettre la 12ème paire clé-valeur.

HashMap est-il sécurisé pour les threads ?

HashMap n'est pas synchronisé. Il n'est pas thread-safe et ne peut pas être partagé entre plusieurs threads sans code de synchronisation approprié alors que Hashtable est synchronisé.

Ce qui convient le mieux au multithreadenvironnement ?

La réponse est "ConcurrentHashMap"

Conseillé:

Articles intéressants
Pourquoi l'ergocalciférol est-il uniquement sur ordonnance ?
Lire la suite

Pourquoi l'ergocalciférol est-il uniquement sur ordonnance ?

La vitamine D est utilisée pour traiter et prévenir les troubles osseux (tels que le rachitisme, l'ostéomalacie). La vitamine D est fabriquée par le corps lorsque la peau est exposée au soleil. Un écran solaire, des vêtements de protection, une exposition limitée au soleil, une peau foncée et l'âge peuvent empêcher d'obtenir suffisamment de vitamine D du soleil.

La vérité peut-elle battre goku ?
Lire la suite

La vérité peut-elle battre goku ?

La vérité est un être immortel que personne ne peut affronter - y compris Goku. Sans aucun effort, la Vérité pourrait démonter tout le corps de Goku, forcer beaucoup plus d'informations dans son cerveau qu'il n'est mentalement ou émotionnellement prêt à en gérer, et l'anéantir complètement.

Où sont les zéros sur un graphique ?
Lire la suite

Où sont les zéros sur un graphique ?

Les zéros d'un polynôme peuvent être trouvés en trouvant où le graphique du polynôme croise ou touche l'axe des x. Où se trouvent les zéros ? Les zéros d'une équation quadratique sont les points où le graphique de l'équation quadratique croise l'axe des x.