
- Java Tutorial
- Java - Home
- Java - Overview
- Java - Environment Setup
- Java - Basic Syntax
- Java - Object & Classes
- Java - Constructors
- Java - Basic Datatypes
- Java - Variable Types
- Java - Modifier Types
- Java - Basic Operators
- Java - Loop Control
- Java - Decision Making
- Java - Numbers
- Java - Characters
- Java - Strings
- Java - Arrays
- Java - Date & Time
- Java - Regular Expressions
- Java - Methods
- Java - Files and I/O
- Java - Exceptions
- Java - Inner classes
- Java Object Oriented
- Java - Inheritance
- Java - Overriding
- Java - Polymorphism
- Java - Abstraction
- Java - Encapsulation
- Java - Interfaces
- Java - Packages
- Java Advanced
- Java - Data Structures
- Java - Collections
- Java - Generics
- Java - Serialization
- Java - Networking
- Java - Sending Email
- Java - Multithreading
- Java - Applet Basics
- Java - Documentation
- Java Useful Resources
- Java - Questions and Answers
- Java - Quick Guide
- Java - Useful Resources
- Java - Discussion
- Java - Examples
How to interrupt a running thread in Java?
A thread can send an interrupt by invoking interrupt on the Thread object for the thread to be interrupted. This means interruption of a thread is caused by any other thread calling the interrupt() method.
The Thread class provides three interrupt methods
- void interrupt() - Interrupts the thread.
- static boolean interrupted() - Tests whether the current thread has been interrupted.
- boolean isInterrupted() - Tests whether the thread has been interrupted.
Example
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() 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; } } } }
Output
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
- Related Articles
- How a thread can interrupt another thread in Java?
- How to create a thread in Java
- How to make a collection thread safe in java?
- How to make a class thread-safe in Java?
- How to create a thread in JShell in Java 9?
- How can we stop a thread in Java?
- Naming a thread in Java
- How to create a thread using method reference in Java?\n
- How to create a thread by using anonymous class in Java?
- How to create a thread using lambda expressions in Java?\n
- How to fix "Exception in thread main" in java?
- User Thread vs Daemon Thread in Java?
- How can we implement a timer thread in Java?
- How to get the thread ID from a thread in C#?
- How to create a thread without implementing the Runnable interface in Java?

Advertisements