>  기사  >  Java  >  Java에서 스레드를 정상적으로 중지하는 방법은 무엇입니까?

Java에서 스레드를 정상적으로 중지하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-11 04:33:03982검색

How to Gracefully Halt a Thread in Java?

Java에서 스레드를 정상적으로 중지

스레드를 실행하는 데 과도한 시간이 걸리는 경우 스레드를 정상적으로 중지해야 할 수도 있습니다. 시스템 불안정을 방지하기 위해. 이를 달성하기 위해 선호되는 접근 방식은 다음과 같이 스레드의 run() 메서드 내에 부울 플래그를 구현하는 것입니다.

class MyThread extends Thread {
  volatile boolean finished = false;

  public void stopMe() {
    finished = true;
  }

  public void run() {
    while (!finished) {
      // Perform necessary tasks
    }
  }
}

이렇게 하면 종료를 true로 설정하여 외부 소스에서 스레드를 중지할 수 있습니다.

오래된 Thread.stop() 메서드는 본질적으로 안전하지 않다는 점에 유의하는 것이 중요합니다. Java 설명서에 나와 있듯이 모니터 잠금 해제 및 개체 상태의 잠재적 불일치로 인해 임의의 동작이 발생할 수 있습니다. 따라서 위에서 설명한 것처럼 스레드의 run() 메서드 내에서 가드를 구현하는 것이 스레드를 정상적으로 종료하는 데 권장되고 안전한 접근 방식입니다.

위 내용은 Java에서 스레드를 정상적으로 중지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.