Uygulamasında bunlardan birini kullanması gereken herhangi bir algoritma var mı?
Neredeyse kesinlikle değil. (Gerçekten de, teorik açıdan, diğer java.util.concurrent . Sınıflarını kullanarak bekleme / bildirim simüle edebilmelisiniz . Senkronize edilmiş açık Kilit işlemleri ile değiştirilebilir ... finally
maddeleri.)
Ancak, orada muhtemelen Java'nın en iyi performans gösteren uygulama ile veya bekleme ve haber vermeden, senkronize doğrudan kullanılmasını gerektirir algoritmaları.
Senkronize edilmekten vazgeçmenin, beklemenin ve bildirim yapmanın zamanı geldi mi?
Önceki sorunun cevabından bağımsız olarak, cevap kesinlikle hayırdır.
Bekle / bildir doğru şekilde kullanılabilir (ve sıklıkla kullanılır). Java'da, kullanımdan kaldırma sınıfları ve yöntemleri bozuldu; yani sürekli kullanımın acil bir durum olarak düzeltilmesi gerektiği durumlarda. Sun (ve şimdi Oracle) bir şeyi temel ve bekle / bildir olarak yaygın olarak kullandıysa, büyük miktarda eski kod için ciddi bir uyumluluk sorunu yaratırlardı. Bu kimsenin menfaatine DEĞİLDİR.
Kodunuzdaki senkronize edilmiş / bekle / bildirimden kurtulmak istiyorsanız, sorun değil. Ancak kullanımdan kaldırma, büyük miktarlarda temelde doğru olan çok iş parçacıklı kodun yeniden yazılmasını gerektirir ve bu bir KÖTÜ IDEA olacaktır. Kurumsal BT yöneticileri ve yazılım ürünü yöneticileri önerdiğiniz için sizden nefret ederdi ...
Java belgelerine göre "kullanımdan kaldırılmış" ın ne anlama geldiğini okumaya değer : http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/deprecation.html
Ayrıca, Java dilinin temelini oluşturan şeyleri kullanımdan kaldırdığımızdan da bahsettiğimizi unutmayın. Çekilmenin synchronized
çok büyük sonuçları var.