Stop()의 대안으로 스레드 중단
"stop()" 메서드는 다음과 같은 가능성이 있으므로 일반적으로 Java에서 권장되지 않습니다. 예상치 못한 부작용을 일으키게 됩니다. 스레드를 종료하는 또 다른 방법은 중단을 통하는 것입니다.
스레드 중단
스레드를 중단하면 실행을 정상적으로 중단해야 한다는 신호를 보냅니다. 스레드를 중단하려면 "interrupt()" 메서드를 호출하세요. 스레드가 올바르게 작동하고 중단을 적절하게 처리하는 경우 종료하기 전에 현재 작업을 완료하려고 시도합니다.
샘플 구현
다음 코드를 고려하세요.
Thread thread = new Thread(new Runnable() { @Override public void run() { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(5000); System.out.println("Hello World!"); } catch (InterruptedException e) { Thread.currentThread().interrupt(); System.out.println("Thread interrupted"); } } } });
이 코드에서 스레드는 루프 내에서 중단된 상태를 확인합니다. 중단되면 "InterruptedException"이 발생하며 이를 처리하고 스레드의 인터럽트 상태를 다시 설정합니다. 그런 다음 스레드는 루프를 종료하고 종료됩니다.
고려 사항
"Thread#isAlive()와 구별 Thread#interrupted()
위 내용은 스레드 중단은 Java에서 더 이상 사용되지 않는 `stop()` 메서드에 대한 더 나은 대안입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!