Java_다중 스레드interrupt()
1784 단어 Java 기반
아주 좋아요.
또 다른 사나이의 블로그 발견https://www.cnblogs.com/death00/p/11585028.html
자신의 한 가지 이해:
최종 작용은 라인을 끊는 것이다.
interrupt() 。
; interrupt() , checkAccess() 。 SecurityException 。
: wait(), wait(long) wait(long, int) ( ) , join(), join(long), join(long, int), sleep(long), sleep(long, int) 。 , interrupt() , “ ” InterruptedException 。 , wait() , interrupt() ; interrupt() “true”, , “ ” “false”, , InterruptedException 。
Selector , interrupt() ; true, 。
, interrupt() , “true”。
“ ” 。
interrupt () 는 중단 신호만 보내고, 라인을 즉시 끝낼 수 없습니다.
따라서 한 라인이 막힌 상태에서interrupt () 를 통해 중단되면, 처음에는 중단 표시를'true '로 설정하지만, 이상을 던지면 중단 표시가'false' 로 설정됩니다.동시에 InterruptedException 예외가 발생합니다.이 이상을 포획하여 끝냅니다.
그 다음에 실행 상태의 라인에 대해interrupt () 를 통해 라인을 중단할 때, 중단 표시는 "true"로 설정됩니다.그래서 Thread 대상에게 협조한다.isInterrupted()로 종료
됐습니다.
결론적으로 두 가지 시나리오를 결합하면 모든 스레드를 중단할 수 있습니다.
@Override
public void run() {
try {
// 1. isInterrupted() , true 。
while (!isInterrupted()) {
// ...
}
} catch (InterruptedException ie) {
// 2. InterruptedException , InterruptedException , 。
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
검지offer프로그래밍 시험문제 자바 실현--4.두 갈래 나무를 재건하다소경 오빠 제목 설명: 두 갈래 나무의 앞 순서와 중간 순서의 결과를 입력하고 이 두 갈래 나무를 다시 만드십시오.입력한 앞 순서와 중간 순서의 결과에 중복된 숫자가 없다고 가정하십시오.예를 들어 앞 순서 반복 시퀀...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.