Come possiamo usare AtomicInteger per la generazione di sequenze limitate dire che il numero di sequenza deve essere compreso tra 1 e 60. Una volta che la sequenza raggiunge 60 deve ricominciare da 1. Ho scritto questo codice anche se non sono sicuro se questo è thread sicuro o no?AtomicInteger per generazione sequenziale limitata
public int getNextValue()
{
int v;
do
{
v = val.get();
if (v == 60)
{
val.set(1);
}
}
while (!val.compareAndSet(v , v + 1));
return v + 1;
}
+1. È davvero utile – satish
Se trovi una risposta davvero utile, fai clic sul segno di spunta per accettarla. – naiad
Che strana implementazione. Fondamentalmente dice "aggiungi 1 se non è ancora cambiato, altrimenti continua a provare". Non potrebbe teoricamente produrre un ciclo infinito? –