jestem uznającej Java map jakoCzy rozmiar(), put(), remove(), get() atomic w Java zsynchronizowany HashMap?
Map<String, String> map = Collections.synchronizedMap(new HashMap<String, String>());
do czynienia z kwestiami współbieżności i synchronizacji na mapie dla wszystkich operacji na nim. Jednak przeczytałem, że synchronizacja nie jest konieczna na synchronizedMap
, gdy operacje są atomowe. Sprawdziłem Java API, a dokumentacja HashMap nie wspomina o atomach, więc nie jestem pewna, które z nich są.
mam synchronizacji na następujących połączeń do mapy:
map.size()
map.put()
map.remove()
map.get()
Ale jeśli niektóre są atomowa wydaje synchronizacja nie jest konieczna dla nich. Które są atomowe?
'HashMap' nie jest kolekcją zsynchronizowaną, więc powinieneś założyć, że żadna operacja nie jest atomowa. – awksp
Wszystkie metody są atomowe, ale wiele wywołań metod nie jest. –