İçindekiler:
Tanımı - Atomic ne anlama geliyor?
Atomic, java.util.concurrent.atomic paket sınıflarının değişken bir araç takımıdır ve Java dili ile kilit ve bekleme algoritmaları yazmanıza yardımcı olur. Sürekli ilerleme için yalnızca kısmi dişler gerektiren bir algoritma kilitsizdir. Beklemesiz bir algoritmada, iplik arızası veya gecikmesi durumunda bile tüm dişler sürekli olarak ilerler. Kilitleme ve beklemesiz algoritmalar aynı zamanda engellemesiz algoritmalar olarak da bilinir. Bloke olmayan algoritmalar, işletim sisteminde ve Java sanal makine düzeylerinde işlem ve iş parçacığı zamanlaması için kullanılır.
Techopedia Atomik Açıklıyor
Tüm java.util.concurrent.atomic paket sınıflarının adlarında "atom" öneki vardır. Java.util.concurrent.atomic paketinde aşağıdakiler de dahil olmak üzere farklı türde atomik değişkenler vardır:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Örnek olarak A iş parçacığının bir kilit tuttuğu bir senaryodur. A sadece bu kilitle korunan değişkenlere erişebilir ve değişiklikler yapabilir. B iş parçacığı A'dan sonra bu kilidi tutarsa, yalnızca A, söz konusu kilit tarafından korunan değişkenlerdeki A değişikliklerini görebilir. Kilitlemenin ana sorunu, B A tarafından tutulan bir kilit almaya çalıştığında ortaya çıkar. Bu durumda, B kilit kullanılabilir olana kadar beklemesi engellenir. Bloke olmayan algoritmalar bu sorunu çözer.
Atomik sınıflar inşa etmenin arkasındaki temel amaç, engellemeyen veri yapılarını ve ilgili altyapı sınıflarını uygulamaktır. Atom sınıfları java.lang.Integer ve ilgili sınıfların yerine geçmez. Çoğu java.util.concurrent paket sınıfı, doğrudan veya dolaylı olarak senkronizasyon yerine atomik değişkenler kullanır. Atomik değişkenler de daha yüksek verim elde etmek için kullanılır, bu da daha yüksek uygulama sunucusu performansı anlamına gelir.
