Lock
nesnesini, try...finally
bloğuna eklendikten sonra aşağıdaki kodu almadan iyi programlama uygulaması olmadığını, böylece bir istisna atılmış olsa dahi kilidin serbest bırakılabileceğini okudum.Bir iş parçacığı bittiğinde bir kilit açıyor mu?
Basit bir soru gibi gelebilir: iş parçacığı bittiğinde bir iş parçacığına ait tüm kilitler otomatik olarak serbest bırakılıyor mu?
Bu soruyu sormamın nedeni, üzerinde çalıştığım programın, bir iş parçacığı bir kilit aldığında, işin bitmesine izin vermesinin bir nedeninin olmaması gerektiği. Ayrıca, kilitleri kullanmakta yeniyim, bu yüzden düşünemediğim tuzakların olup olmadığını merak ediyorum. İplik tamamlanmadan önce kodumda kilitleri serbest bırakmak için endişelenmem gerekiyor mu yoksa JVM'ye bırakabilir miyim, diğer bilgiler aktif olan tüm kilitlerin kilitlenmesini engeller. iplik durur? sana o kilidi gösterebilir
Lütfen bir kod yazın. – C1sc0
@ C1sc0: Ne hakkında bazı kodlar? Sorunun oldukça net bir sorun bildirimi var – Patrick
Bunu muhtemelen çok basit bir uygulama ile test edebilirsiniz. İki iş parçacığı oluşturun, aynı kilidi temizleyin ve sonra iş parçacığını doğrudan öldürün. İkinci iplik kilidi alırsa, gerçekten kilidi açılır. – Patrick