Sobes.tech
Junior — Middle

Çok iş parçacıklı çalışma sırasında kilitleme mekanizmalarını nasıl kullanacağınızı açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da çok iş parçacıklı çalışma için çeşitli kilit mekanizmaları kullanılır; bu mekanizmalar, ortak kaynaklara erişimi senkronize etmeye ve yarış durumlarını önlemeye olanak tanır.

Ana yöntemler:

  • synchronized — metodlara veya kod bloklarına uygulanabilen anahtar kelime. Nesne monitörüne özel erişim sağlar.
public synchronized void increment() {
    counter++;
}
  • java.util.concurrent.locks.Lock — synchronized'dan daha esnek kilitleme imkanları sunan arayüz. Örneğin, kilidi açıkça yakalayabilir ve serbest bırakabilirsiniz.
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

Lock lock = new ReentrantLock();

lock.lock();
try {
    // kritik bölüm
} finally {
    lock.unlock();
}
  • ReadWriteLock — okuma ve yazma için kilitleri ayırmaya olanak tanır, bu da çok sayıda okuma işlemi sırasında performansı artırır.

Kilitlerin kullanımı, yarış durumu ve deadlock gibi sorunları önlemeye yardımcı olur; doğru kilit sırası ve serbest bırakma yönetimi finally bloğunda düzgün yapılmalıdır.