Java 스레드를 중지하는 방법은 멀티 스레드 프로그램을 개발할 때 항상 일반적인 문제였습니다. 많은 분들이 저에게 물어보셨기 때문에, 더 많은 분들이 Java에서 실행 중인 스레드를 안전하게 종료하는 방법을 아셨으면 하는 마음으로 오늘 여기에 요약해 보겠습니다.
Java 다중 스레드 프로그래밍에서 java.lang.Thread 유형에는 일련의 메소드 start(), stop(), stop( Throwable ) 및 일시 중지(), 파괴() 및 재개(). 이러한 메소드를 통해 스레드에 대한 편리한 작업을 수행할 수 있지만 이러한 메소드 중 start() 메소드만 유지됩니다.
이러한 메서드를 포기하는 이유는 JDK 도움말 문서와 Sun의 "Why are Thread.stop, Thread.현수막 및 Thread.resume이 더 이상 사용되지 않습니까?" 기사에 설명되어 있습니다.
그럼 스레드를 어떻게 중지해야 할까요?
공유변수 사용
이렇게 공유변수를 도입하는 이유는 이 변수를 여러 스레드에서 실행할 수 있기 때문입니다. 동일한 작업이 중단 신호로 사용되어 중단된 스레드의 실행을 알립니다.
public class ThreadFlag extends Thread { public volatile boolean exit = false; public void run() { while (!exit); } public static void main(String[] args) throws Exception { ThreadFlag thread = new ThreadFlag(); thread.start(); sleep(3000); // 主线程延迟3秒 thread.exit = true; // 终止线程thread thread.join(); System.out.println("线程退出!"); } }
위 코드에는 종료 플래그 종료가 정의되어 있습니다. 종료가 true이면 while 루프가 종료되고 종료의 기본값은 false입니다. 종료를 정의할 때 Java 키워드 휘발성이 사용됩니다. 이 키워드의 목적은 종료를 동기화하는 것입니다. 즉, 하나의 스레드만 종료 값을 동시에 수정할 수 있습니다.
위 내용은 Java에서 스레드를 중지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!