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

  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • katherine gomez

    katherine go

    1 Aralık 2011
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013