9 Haziran 2016 Perşembe

Atomic Java Yapıları

Giriş
Java'da Atomic kelimesi ile başlayan şu sınıflar var. AtomicBoolean,AtomicInteger, AtomicLong. Bu sınıflar ortak bir arayüz veya ata sınıftan kalıtmıyorlar.

AtomicBoolean
AtomicBoolean Sınıfı yazısına taşıdım.

AtomicInteger
AtomicInteger Sınıfı yazısına taşıdım.

AtomicLong
AtomicLong Sınıfı yazısına taşıdım.

AtomicReference
AtomicReference Sınıfı yazısına taşıdım.

AtomicReferenceArray 
AtomicReferenceArray Sınıfı yazısına taşıdım.

Genel Metodlar
getAndIncrement ve incrementAndGet
getAndIncrement ve incrementAndGet isimli iki metod sunar. Farkları şöyle. getAndIncrement ilk değeri döndürür ve değişkeni artırır. incrementAndGet değişkeni artırır sonra değeri döndürür. Yani aslında

getAndIncrement = i++
incrementAndGet =  ++i

gibi düşünülebilir.
public final int getAndIncrement() {
    for (;;) {
        int current = get();
        int next = current + 1;
        if (compareAndSet(current, next))
            return current;
    }
}

public final int incrementAndGet() {
    for (;;) {
        int current = get();
        int next = current + 1;
        if (compareAndSet(current, next))
            return next;
    }
}
Basit bir kullanım örneği şöyle
AtomicLong counter = new AtomicLong();
long val = counter.incrementAndGet();
return String.valueOf(val);




Hiç yorum yok:

Yorum Gönder