synchronized
+ yöntemi wait()
anahtar kelimesi yerine Locks (java.util.concurrent.locks.Lock
) ve yöntem notify()
tamamen aynı mı?Açık Locks ile Implicit Locks
Ben iplik-güvenli Can kilitleri (açık kilitler) ziyade örtük kilitler (synchronized
) kullanılarak programlamak?
Bildiğim kadarıyla her zaman gizli kilitler kullanıyordum. isLocked()
, getLockQueueLength()
, getHoldCount()
, vb. Gibi Lock
arabirimi gibi uygulamaların sağladığı avantajların farkındayım, ancak yine de eski okul yolu (wait()
ve notify()
) bu yöntemlere sahip olmanın dışında başka sınırlara sahip olur mu?
Ben de açlık eksikliği sağlayan bir (boolean adalet) parametresi ile bir kilit inşası konusunu farkındayım.
Peki, tamamen% aynı,% 100 özdeş, sonra birinin varlığı gereksiz olurdu ;-) –
@Joachim Sauer Kesinlikle bir programlama dilinin iki özdeş olması ilk kez olmayacaktı aynı şeyi yapmanın yolları. – Patashu
@Patashu: kesinlikle değil. Ancak, en azından bazı avantajlar olmasaydı ('isLocked() 'yöntemi gibi) birincisinden çok uzun bir süre sonra ikinci bir seçenek ekleyemezlerdi. –