Java Thread interrupt() Method



Description

The Java Thread interrupt() method interrupts this thread. Interrupting a thread that is not alive need not have any effect.

Declaration

Following is the declaration for java.lang.Thread.interrupt() method

public void interrupt()

Parameters

NA

Return Value

This method does not return any value.

Exception

SecurityException − if the current thread cannot modify this thread.

Example: Interrupting a Thread

The following example shows the usage of Java Thread interrupt() method. In this program, we've created a thread class ThreadDemo by implementing Runnable interface. In constructor, a new thread is created using new Thread. Its name is printed using getName() and using start() method, thread is started. Using isInterrupted() method, we're checking if thread is not interrupted then interrupt the thread using interrupt() method. Thereafter we block the thread using join() method. In run() method, we added a sleep of 1 second in while(true) loop, which causes an InterruptedException.

In main method, we've created two threads of ThreadDemo.

package com.tutorialspoint;

public class ThreadDemo implements Runnable {

   Thread t;

   ThreadDemo() {

      t = new Thread(this);
      System.out.println("Executing " + t.getName());
      // this will call run() fucntion
      t.start();
        
      // tests whether this thread has been interrupted
      if (!t.isInterrupted()) {
         t.interrupt();
      }
      // block until other threads finish
      try {  
         t.join();
      } catch(InterruptedException e) {}
   }

   public void run() {
      try {       
         while (true) {
            Thread.sleep(1000);
         }
      } catch (InterruptedException e) {
         System.out.print(t.getName() + " interrupted:");
         System.out.println(e.toString());
      }
   }

   public static void main(String args[]) {
      new ThreadDemo();
      new ThreadDemo();
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

Executing Thread-0
Thread-0 interrupted:java.lang.InterruptedException: sleep interrupted
Executing Thread-1
Thread-1 interrupted:java.lang.InterruptedException: sleep interrupted
java_lang_thread.htm
Advertisements