एक थ्रेड थ्रेड . पर इंटरप्ट को बुलाकर एक इंटरप्ट भेज सकता है धागे को बाधित करने के लिए वस्तु। इसका मतलब है कि किसी अन्य थ्रेड द्वारा इंटरप्ट () . को कॉल करने के कारण किसी थ्रेड में रुकावट आती है विधि।
थ्रेड वर्ग तीन व्यवधान विधियाँ प्रदान करता है
- शून्य बाधा() - धागे को बाधित करता है।
- स्थिर बूलियन बाधित () - परीक्षण करें कि क्या वर्तमान थ्रेड बाधित हो गया है।
- बूलियन बाधित है() - परीक्षण करें कि क्या धागा बाधित हो गया है।
उदाहरण
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;
}
}
}
} आउटपुट
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