Engellenen ve bekleme durumları arasındaki önemli fark, zamanlayıcı üzerindeki etkidir. Engellenmiş durumdaki bir iş parçacığı kilit için yarışıyor; bu iş parçacığı yine de zamanlayıcının hizmet vermesi gereken bir şey olarak sayılır, muhtemelen programlayıcının çalışan iş parçacıkları vermesi için ne kadar süre vereceğine dair kararlarında hesaba katılır (böylece iş parçacıklarının kilit üzerindeki engelleme şansı verebilir).
Bir iş parçacığı bekleme durumunda olduğunda, sisteme yüklediği stres en aza indirilir ve programlayıcının bunun için endişelenmesine gerek kalmaz. Bir bildirim alana kadar uykuda kalır. Bir işletim sistemi iş parçacığını meşgul tutması dışında, tamamen oyun dışıdır.
Bu nedenle notifyAll'ı kullanmak idealden daha azdır, daha önce mutlu bir şekilde uykuda olan bir grup iş parçacığının uyanmasına neden olur, çoğu kilit elde edene kadar bloke eder, bulundukları durumu bulurlar. beklemek doğru değildir ve beklemeye geri dönün. Yalnızca ilerleme sağlama şansı olan konuların bildirilmesi tercih edilir.
(İçsel kilitler yerine ReentrantLock'u kullanmak, bir kilit için birden fazla koşula sahip olmanızı sağlar, böylece bildirilen iş parçacığının belirli bir koşulu bekleyen bir iş parçacığı olduğundan emin olabilirsiniz ve bir iş parçacığının bildirilmesi durumunda kayıp bildirim hatasını önleyebilirsiniz. üzerinde hareket edemeyeceği bir şey.)