SORU
17 Kasım 2010, ÇARŞAMBA


Senkronizasyon vs Kilit

2* *Apı kritik kaynağa erişmek için bir sınıf temelde sırayla kontrol sıralar hangi Lock) olarak adlandırılan sağlar. park() unpark() gibi bir yöntem verir.

Eğer synchronized anahtar kelime kullanın ve wait() notify() notifyAll() yöntemleri kullanarak eğer benzer şeyler yapabiliriz.

Bu uygulamada hangisi daha iyi ve neden merak ediyorum?

CEVAP
17 Kasım 2010, ÇARŞAMBA


Eğer sadece bir nesne kilitleme iseniz, synchronized kullanmayı tercih ediyorum

Örnek:

Lock.acquire();
doSomethingNifty(); // Throws a NPE!
Lock.release(); // Oh noes, we never release the lock!

Açıkça try{} finally{} bunu her yerde var.

Senkronize ise, süper net ve yanlış almak imkansız:

synchronized(myObject) {
    doSomethingNifty();
}

Bu, Locks ve bu kadar temiz bir şekilde elde serbest olduğu değil, daha karmaşık şeyler için daha faydalı olabilir " dedi. İsterdim açıkçası tercih kullanmaktan kaçının çıplak Locks ilk başta, sadece git ve bir daha karmaşık bir eşzamanlılık kontrolü gibi bir CyclicBarrier LinkedBlockingQueue, eğer onlar karşılamak ihtiyaçlarınızı.

Asla wait() notify() kullanmak için bir sebep yoktu. ama bazı iyi olanlar olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Good Creative Academy

    Good Creativ

    19 Kasım 2009
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • YAN TV

    YAN TV

    20 EKİM 2011