JanekMaSkrypta_ 117 Opublikowano 11 marca 2018 Udostępnij Opublikowano 11 marca 2018 Witam moze mi ktos powiedziec czym sie rozni ConcurrentHashMap a HashMap ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 GotoFinal 195 Opublikowano 11 marca 2018 Udostępnij Opublikowano 11 marca 2018 (edytowane) @JanekMaSkrypta_ ConcurrentHashMap drobnym kosztem wydajności i pamięciowym wspiera operacje z wielu wątków bez blokowania ich za pomocą atomowych operacji CAS. Jednak warto zaznaczyć że nie mamy wtedy gwarancji co tak na prawdę zobaczymy w takiej mapie, jeśli w trakcie iteracji po mapie w wątku A zostaje dodana nowa wartość w wątku B to nie ma żadnej pewności czy dodany obiekt też będzie elementem tej iteracji czy nie - zależy czy nowy obiekt wyląduje w przed czy za wskaźnikiem iteratora. Zazwyczaj nie mamy takiej konieczności by ta wartość tam od razu była, ale czasem jednak jedyne dobre wyjście to synchronizacja HashMapy zamiast użycia concurrent. Tak samo można taką mapę edytować w trakcie iteracji z tego samego wątku - co w przypadku zwykłej hash mapy wywali błąd CME. Dodatkowo mapa Concurrent nie wspiera ani kluczy ani wartości nullowych - gdzie w HashMapie można do klucza przypisać wartość null, czy też wartość do klucza o watości null. Edytowane 11 marca 2018 przez GotoFinal TheMolkaPL i yooniks 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
JanekMaSkrypta_ 117
Witam moze mi ktos powiedziec czym sie rozni ConcurrentHashMap a HashMap ?
Odnośnik do komentarza
Udostępnij na innych stronach
1 odpowiedź na to pytanie
Rekomendowane odpowiedzi