Java에서 스레드 t2
이 다른 스레드에서 현재 사용중인 동기화 된 잠금을 얻으려고 시도하면 t1
, t2
은 실행 가능에서 차단으로 전환됩니다. 옳은? ReentrantLock
s는 어떨까요?스레드 상태, 잠금 및 조건
t1
스레드가 잠금을 사용하여 끝나면 t2
이 자동으로 실행 가능으로 다시 전환 되나요? 아니면 notifyAll()
을 사용해야합니까? 어떤 조건없이 ReentrantLock
을 사용하면 어떨까요? 조건을 사용하지 않는 경우 스레드 t2
에 실행 가능으로 다시 전환해야한다고 알리는 방법은 무엇입니까? 조건없이 재진입 가능한 자물쇠를 사용하는 것이 현명한가요?
이 질문에 이미 답변 (찾을 수 없음)했다면 나에게 연결해 주시면 감사하겠습니다.
그는 "대기 중"이라는 용어를 "실행 가능"이라고 생각합니다. –
혼란은 내가 읽고있는 책 (Cay S. Horstmann의 Object-Orinted Design and Patterns)에서 비롯된 것입니다. 이 책에서 다음 내용을 읽을 수 있습니다 [스크린 샷] (http://imgur.com/a/qYm36). 이게 단순한가요, 아니면 제가 빠진 것이 있습니까? –
@erikp는 단순화 된 것처럼 보입니다. [JavaDocs of Thread.State] (https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.State.html) – Hulk