sto dichiarando una mappa Java comeAre size(), put(), remove(), get() atomico in Java HashMap sincronizzato?
Map<String, String> map = Collections.synchronizedMap(new HashMap<String, String>());
per affrontare i problemi di concorrenza, e la sincronizzazione sulla mappa per tutte le operazioni su di esso. Tuttavia, ho letto che la sincronizzazione non è necessaria su un synchronizedMap
quando le operazioni sono atomiche. Ho controllato l'API Java e la documentazione di HashMap non sembra menzionare quale sia atomica, quindi non sono sicuro di quale sia.
che sto sincronizzazione sui seguenti chiamate alla mappa:
map.size()
map.put()
map.remove()
map.get()
Ma se alcuni sono atomica, sembra sincronizzazione non è necessaria per questi. Quali sono atomici?
'HashMap' non è una raccolta sincronizzata, quindi è necessario assumere che nessuna operazione sia atomica. – awksp
Tutti i metodi sono atomici, ma non più le chiamate ai metodi. –