synchronized
+ wait()
메서드와 notify()
키워드가 완전히 동일합니까? (java.util.concurrent.locks.Lock
)를 사용하고 있습니까?명시 적 잠금과 암시 적 잠금 비교
암시 적 잠금 (synchronized
) 대신 잠금 (명시 적 잠금)을 사용하여 스레드를 안전하게 프로그래밍 할 수 있습니까?
저는 항상 암시 적 잠금을 사용하고 있습니다. 나는 Lock
메쏘드와 같은 인터페이스 구현에 의해 주어진 이점을 알고있다 : isLocked()
, getLockQueueLength()
, getHoldCount()
, 등등 ... 그러나 여전히 오래된 학교 방식 (wait()
과 notify()
)은 그러한 방법을 가지고 있지 않은 것 외에 다른 한계를 가지고 있을까?
저는 기아가 없도록 허용하는 (부울 공평성) 매개 변수로 잠금을 구성 할 가능성을 알고 있습니다.
글쎄, 100 % 동일 할 때와 완전히 똑같지는 않다. 그렇다면 하나의 존재는 중복 될 것이다 ;-) –
@Joachim Sauer 분명히 프로그래밍 언어가 두 개의 동일한 같은 일을하는 방법. – Patashu
@Patashu : 분명히 아닙니다. 그러나 적어도 몇 가지 장점이 없다면 (예를 들어'isLocked()'메서드와 같은) 두 번째 옵션을 처음 추가 한 후에 오랫동안 두 번째 옵션을 추가 할 가능성은 희박합니다. –