Giriş
Şu satırı dahil ederiz.
Şu satırı dahil ederiz.
import java.util.concurrent.atomic.AtomicLong;
Bu sınıf yerine LongAdder tercih edilebilir
constructor
Şöyle kullanırız
updateAndGet metodu
final AtomicLong counter = new AtomicLong(); //0 olarak başlar.
constructor
Şöyle yaparız
AtomicLong counter = new AtomicLong (ThreadLocalRandom.current().nextLong());
Eski değere bakarak yeni bir değer atama imkanı sağlar
Örnek
Şöyle yaparız. Eğer yeni değer, mevcut değere göre >= ise yeni değer atanır, değilse eski değer atanır. Yeni değeri dönerse işlem başarılıdır.
boolean setIfEqualOrGreaterThan(AtomicLong oldValue, long newValue) {
return oldValue.updateAndGet(current ->
(newValue >= current) ? newValue : current) == newValue;
}
Hiç yorum yok:
Yorum Gönder