더 이상 사용되지 않는 Thread.stop() 메서드를 사용하지 않고 효과적으로 스레드를 종료하는 방법
Java Thread 클래스는 stop() 메서드를 제공합니다. 스레드를 종료하는 수단으로 사용되지만 더 이상 사용되지 않으므로 사용해서는 안 됩니다. 이 기사에서는 인터럽트 메소드를 사용하여 스레드를 종료하는 대체 접근 방식을 제시합니다.
인터럽트를 사용하여 스레드 중지
안전하지 않은 stop()을 직접 호출하는 대신 데이터 손상이 발생할 수 있으므로 인터럽트를 사용하여 스레드가 정상적으로 종료되어야 한다는 신호를 보낼 수 있습니다. 작동 방식은 다음과 같습니다.
public class InterruptedExceptionExample { private static volatile boolean shutdown = false; public static void main(String[] args) { Thread thread = new Thread(() -> { while (!shutdown) { try { System.out.println("Running..."); Thread.sleep(5000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); thread.start(); System.out.println("Press enter to quit"); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } shutdown = true; thread.interrupt(); } }
이 코드에서는
사용의 장점 중단:
스레드 중단은 더 이상 사용되지 않는 stop()에 비해 여러 가지 이점을 제공합니다.
위 내용은 `Thread.stop()`을 사용하지 않고 Java 스레드를 안전하게 중지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!