Thread Güvenli Olmayan Paylaşılan Durum (ARCH4038)
Anahtar java.async.non-volatile-shared-field · Önem warning · Kategori async
volatile veya atomik olmayan, senkronize bir blok dışında okunan/yazılan değiştirilebilir paylaşılan alanlar, eşzamanlı erişimde görünürlük ve yarış koşulu sorunlarına yol açar.
Hatalı
Bölüm başlığı “Hatalı”class Counter { private boolean running; // paylaşılan, korumasız void start() { running = true; } void stop() { running = false; } // başka thread'den}class Counter { private volatile boolean running; // görünürlük garantili void start() { running = true; } void stop() { running = false; }}Düzeltme
Bölüm başlığı “Düzeltme”Paylaşılan alanı volatile yapın, AtomicX kullanın veya tüm erişimleri synchronized/lock ile koruyun.