1. 설명
스레드 잠금은 대기 중인 스레드가 작업을 완료할 수 없음을 의미합니다. 해당 스레드를 깨우는 데 필요한 조건을 설정할 수 없거나 다른 스레드가 이 스레드를 깨울 수 없고 비활성 상태에 있었기 때문입니다. 실행 상태(스레드가 종료되지 않았습니다).
2 스레드 잠금에는 두 가지 유형이 있습니다.
(1) 신호 손실 잠금: 신호 손실 잠금은 대기 스레드를 깨울 해당 알림 스레드가 없어 대기 스레드가 계속 대기 상태에 있기 때문입니다. 상태.
일반적인 예는 Object.wait()/Condition.await()를 실행하기 전에 대기 중인 스레드가 보호 조건을 판단하지 않는다는 것입니다. 이때 실제로 보호 조건이 설정되었을 수 있으며 다른 스레드는 이를 업데이트할 수 없습니다. 그 후 해당 보호 조건이 설정되어 대기 중인 스레드에 통보되며, 이는 대기 중인 스레드를 대기 상태로 유지하여 해당 작업을 진행할 수 없게 만듭니다.
(2) 중첩 모니터 잠금: 중첩 모니터 잠금은 중첩 잠금으로 인해 대기 중인 스레드를 결코 깨울 수 없는 오류입니다.
예를 들어 스레드는 내부 잠금 Y.wait()만 해제하고 외부 잠금 X는 해제하지 않지만 알림 스레드는 Y.notifyAll을 통해 대기 스레드를 깨우기 전에 먼저 외부 잠금 X를 획득해야 합니다. (). 이로 인해 중첩된 대기 현상이 발생합니다.
Java의 기본 데이터 유형은 다음과 같이 구분됩니다.
1 정수 유형은 정수의 데이터 유형을 나타내는 데 사용됩니다.
2. 부동 소수점 유형, 소수를 나타내는 데 사용되는 데이터 유형입니다.
3. 문자 유형의 키워드는 "char"입니다.
4. 불리언형은 논리값을 표현하는 기본 데이터형입니다.
위 내용은 Java 스레드 교착 상태란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!