Vedo come funziona AtomicInteger di Java internamente con l'operazione CAS (Confronto e scambio). Fondamentalmente quando più thread tentano di aggiornare il valore, JVM utilizza internamente il meccanismo CAS sottostante e tenta di aggiornare il valore. Se l'aggiornamento fallisce, riprova con il nuovo valore ma non blocca mai.In che modo LongAdder ha prestazioni migliori di AtomicLong
In Java8 Oracle ha introdotto una nuova classe LongAdder che sembra funzionare meglio di AtomicInteger in alta contesa. Alcuni post del blog affermano che LongAdder ha prestazioni migliori mantenendo le celle interne. Ciò significa che LongAdder aggrega i valori internamente e lo aggiorna in un secondo momento? Potresti per favore aiutarmi a capire come funziona LongAdder?
http://stackoverflow.com/questions/27628538/multithreading-summing-large-number-of-values-atomically/27628873#27628873 – sol4me
In un primo momento penso che ho frainteso. Leggendo di nuovo la tua domanda, penso che tu abbia avuto l'idea giusta. – aioobe
Grazie! Sono più interessato a capire come sono organizzate queste cellule interne? dire se 100 thread stanno cercando di aggiornare il valore, quante celle interne vengono create e come vengono aggiornate? – Sathish