>  기사  >  Java  >  Java에서 실행 중인 스레드를 중단하는 방법은 무엇입니까?

Java에서 실행 중인 스레드를 중단하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-09-18 13:49:02859검색

Java에서 실행 중인 스레드를 중단하는 방법은 무엇입니까?

스레드는 스레드 객체의 interrupt() 메서드를 호출하여 인터럽트 신호를 보내 스레드를 중단할 수 있습니다. 이는 스레드의 중단이 interrupt() 메서드를 호출하는 다른 스레드로 인해 발생한다는 것을 의미합니다.

Thread 클래스는 세 가지 인터럽트 방법을 제공합니다:

  • void Interrupt() - 스레드를 인터럽트합니다.
  • static boolean Interrupted() - 현재 스레드가 중단되었는지 테스트합니다.
  • boolean isInterrupted() - 스레드가 중단되었는지 테스트합니다.

public class ThreadInterruptTest {
   public static void main(String[] args) {
      System.out.println("Thread main started");
      final Task task = new Task();
      final Thread thread = new Thread(task);
      thread.start();
      thread.interrupt(); // calling interrupt()<strong> </strong>method
      System.out.println("Main Thread finished");
   }
}
class Task implements Runnable {
   @Override
   public void run() {
      for (int i = 0; i < 5; i++) {
         System.out.println("[" + Thread.currentThread().getName() + "] Message " + i);
         if(Thread.interrupted()) {
            System.out.println("This thread was interruped by someone calling this Thread.interrupt()");
            System.out.println("Cancelling task running in thread " + Thread.currentThread().getName());
            System.out.println("After Thread.interrupted() call, JVM reset the interrupted value to: " + Thread.interrupted());
            break;
         }
      }
   }
}

출력

Thread main started
Main Thread finished
[Thread-0] Message 0
This thread was interruped by someone calling this Thread.interrupt()
Cancelling task running in thread Thread-0
After Thread.interrupted() call, JVM reset the interrupted value to: false

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

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제