synchronizeBir yöntemden önce anahtar kelimeyi kullanmanın o nesneye senkronizasyon getirdiğini biliyorum . Yani, nesnenin aynı örneğini çalıştıran 2 iş parçacığı senkronize edilecektir.
Bununla birlikte, senkronizasyon nesne düzeyinde olduğundan, nesnenin farklı örneklerini çalıştıran 2 iş parçacığı senkronize edilmeyecektir. Bir Java sınıfında yöntem tarafından çağrılan statik bir değişkenimiz varsa, bunun sınıfın örnekleri arasında senkronize edilmesini isteriz. İki örnek, 2 farklı iş parçacığında çalışıyor.
Senkronizasyonu aşağıdaki şekilde sağlayabilir miyiz?
public class Test
{
private static int count = 0;
private static final Object lock= new Object();
public synchronized void foo()
{
synchronized(lock)
{
count++;
}
}
}
lockStatik olan bir nesne tanımladığımız ve synchronizedbu kilit için anahtar kelimeyi kullandığımız için, statik değişkenin countartık sınıf örnekleri arasında senkronize edildiği doğru Testmu?