Co jest nie tak podczas korzystania z HashMap w środowisku wielowątkowym? … To jest problem, jeśli wiele wątków jest dodawanych do tej samej instancji HashMap bezjej synchronizacji. Nawet jeśli tylko 1 wątek modyfikuje HashMap, a inne wątki czytają z tej samej mapy bez synchronizacji, napotkasz problemy.
Czy możesz używać HashMap w środowisku wielowątkowym?
Musisz się upewnić: Wszystkie aktualizacje HashMap zostały zakończone zanim wątki zostaną utworzone, a wątek, który tworzy mapę, również rozwidla wątki. Wątki używają HashMap tylko w trybie tylko do odczytu - pobierz lub iterację bez usuwania. Nie ma wątków aktualizujących mapę.
Dlaczego HashMap nie powinien być używany w środowisku wielowątkowym, czy może również powodować nieskończoną pętlę?
Domyślna pojemność HashMap wynosi 16, a współczynnik obciążenia wynosi 0,75, co oznacza, że HashMap podwoi swoją pojemność, gdy 12. para klucz-wartość wejdzie na mapę (160,75=12). Gdy 2 wątki próbują jednocześnie uzyskać dostęp do HashMap, możesz napotkać nieskończoną pętlę. Wątek 1 i Wątek 2 próbują umieścić 12. parę klucz-wartość.
Czy HashMap jest bezpieczny dla wątków?
HashMap nie jest zsynchronizowany. To nie jest bezpieczne dla wątków i nie może być współdzielone przez wiele wątków bez odpowiedniego kodu synchronizacji, podczas gdy Hashtable jest zsynchronizowany.
Co najlepiej nadaje się do wielowątkowościśrodowisko?
Odpowiedź brzmi „ConcurrentHashMap”