Java에서 스레드를 종료하는 세 가지 방법

1651 단어 java종료 스레드
Thread.stop, Thread.suspend, Thread.resume와 Runtime.runFinalizers Onexit 이러한 정지 라인 운행 방법은 이미 폐기되었고, 그것들을 사용하는 것은 매우 안전하지 않습니다!
1. 스레드가 정상적으로 실행되고 정상적으로 종료됨
즉, 런 방법을 실행하면 이 라인은 정상적으로 끝날 것이다.
그러나 때로는 while (true) 과 같이 라인이 영원히 끝날 수 없다.
2. 특정 조건을 감시하고 라인의 끊임없는 운행을 끝낸다
while () 순환이 특정한 조건하에서 퇴출되어야 합니다. 가장 직접적인 방법은 boolean 로고를 설정하고 이 로고를 설정함으로써 순환이 퇴출되는지 여부를 제어하는 것입니다.

public class ThreadFlag extends Thread {
  public volatile boolean exit = false;

  public void run() {
    while (!exit) {
      System.out.println("running!");
    }
  }

  public static void main(String[] args) throws Exception {
    ThreadFlag thread = new ThreadFlag();
    thread.start();
    sleep(1147); //  5 
    thread.exit = true; //  thread 
    thread.join();
    System.out.println(" !");
  }
}

3. 인터럽트 방법으로 라인을 종료합니다
만약 스레드가 막힌다면, 방법 2를 사용하여 스레드를 중지할 수 없습니다.

public class ThreadInterrupt extends Thread {
  public void run() {
    try {
      sleep(50000); //  50 
    } catch (InterruptedException e) {
      System.out.println(e.getMessage());
    }
  }

  public static void main(String[] args) throws Exception {
    Thread thread = new ThreadInterrupt();
    thread.start();
    System.out.println(" 50 !");
    System.in.read();
    thread.interrupt();
    thread.join();
    System.out.println(" !");
  }
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기