See following tutorial from sun:
An interrupt is an indication to a thread that it should stop what it is doing and do something else. It's up to the programmer to decide exactly how a thread responds to an interrupt, but it is very common for the thread to terminate. This is the usage emphasized in this lesson.
So if a thread is interrupted, it maybe continue to run without stop. Whether it will stop is up to the programmer.
See the example below: ( I copied from http://hapinwater.iteye.com/blog/310558)
class ATask implements Runnable{
private double d = 0.0;
public void run() {
//死循环执行打印"I am running!" 和做消耗时间的浮点计算
while (true) {
System.out.println("I am running!");
for (int i = 0; i < 900000; i++) {
d = d + (Math.PI + Math.E) / d;
}
//给线程调度器可以切换到其它进程的信号
Thread.yield();
}
}
}
public class InterruptTaskTest {
public static void main(String[] args) throws Exception{
//将任务交给一个线程执行
Thread t = new Thread(new ATask());
t.start();
//运行一断时间中断线程
Thread.sleep(100);
System.out.println("****************************");
System.out.println("Interrupted Thread!");
System.out.println("****************************");
t.interrupt();
}
}
The result shows:
......
I am running!
I am running!
I am running!
I am running!
****************************
Interrupted Thread!
****************************
I am running!
I am running!
I am running!
I am running!
I am running!
....
Check here for more information about interrupt in java:
http://hapinwater.iteye.com/blog/310558
分享到:
相关推荐
Java的`interrupt()`方法在多线程编程中扮演着重要的角色,它允许程序员通知一个线程,它的执行应该被中断。然而,理解`interrupt()`方法的正确使用方式至关重要,因为直接调用`interrupt()`并不总是能立即停止线程...
Java中使用interrupt()终止线程的详细介绍 在Java中,终止线程是一种复杂的操作,需要对线程的状态和中断机制有深入的了解。本文将详细介绍如何使用interrupt()终止线程,并提供了多种终止线程的方式和示例代码。 ...
线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。线程会不时地检测这个中断标示位,以...
Java中的多线程允许并发执行多个任务,而中断机制是Java提供的一种优雅地停止线程执行的方式。`Thread.interrupt()`方法是中断线程的主要手段,但它的行为并不像字面意义上那样直接终止线程。相反,它通过设置线程的...
java 线程中的 interrupt,isInterrupt,interrupted 方法详解 在 Java 中,线程(Thread)类提供了三个相关的方法:interrupt、isInterrupted 和 interrupted,这三个方法都是用于处理线程的中断状态的。下面我们将...
在Java编程语言中,`interrupt()` 和 `sleep()` 是两个非常关键的方法,它们与线程的控制和管理密切相关。理解这两个方法的工作原理是构建多线程应用程序的基础。 首先,我们来探讨 `interrupt()` 方法。在Java中,...
总的来说,Java的中断机制提供了一种安全且灵活的方式来停止线程,通过结合使用`interrupt()`, `isInterrupted()`, 和 `interrupted()`方法,以及妥善处理`InterruptedException`,可以确保线程在适当的时候优雅地...
### Java线程中断机制详解:`interrupt`与`stop`方法 #### 一、引言 在Java多线程编程中,线程控制是至关重要的技术之一。有时我们需要在特定条件下停止某个线程的执行,或者中断正在等待的线程。Java提供了多种...
一个线程join另一个线程,(包括和interrupt互动的用法)1---马克-to-win java视频
一个线程join另一个线程,(包括和interrupt互动的用法)3---马克-to-win java视频
Java线程Thread之interrupt中断解析 Java线程Thread之interrupt中断机制是Java多线程编程中的一种重要机制。通过调用Thread.interrupt()方法,可以设置线程的中断状态位,线程会不时地检测这个中断标示位,以判断...
JAVA 多线程 interrupt() 和线程终止方式 JAVA 多线程中,interrupt() 和线程终止方式是两个非常重要的概念。本文将深入分析 JAVA 多线程中 interrupt() 和线程终止方式的相关知识。 一、interrupt() 介绍 ...
Java提供了interrupt()方法来请求线程停止,但是这并不保证线程会立即停止,线程可能还需要完成一些清理工作。因此,线程应该定期检查是否被中断,并在适当的时候终止自己的运行。此外,确保释放所有打开的资源,如...
基于JDK8总结java中的interrupt知识 在Java中,interrupt机制是一种重要的线程控制机制,它允许一个线程请求另一个线程停止或中断当前操作。基于JDK8,我们可以总结出以下关于java中的interrupt知识点: 1. ...
Java 提供了多种线程操作方法,例如 wait() 方法使线程等待,notify() 方法唤醒等待线程,interrupt() 方法中断线程等。 同步与死锁是多线程中需要注意的两个问题。同步是指多个线程同时访问共享资源时,需要使用锁...
在IT行业中,跨平台通信是一个常见的需求,尤其是在Java和.NET框架之间。本示例主要探讨如何使用Java调用C#编写的DLL文件,这通常通过Java COM Bridge来实现,其中 Jacob(Java COM Bridge)是一个非常实用的工具。...
1. Thread.interrupt():用于中断线程,但不一定立即停止,需要在run()方法内部检查中断标志并作出相应处理。 2. InterruptedException:线程被中断时抛出的异常,通常需要捕获并处理。 九、线程死锁 1. 死锁的概念...
当我们调用`thread.interrupt()`时,Java虚拟机会执行以下步骤: 1. 设置线程的中断状态。 2. 如果线程当前正在阻塞状态,则会清除其阻塞状态,并抛出`InterruptedException`。 3. 如果线程正在执行阻塞IO操作,则...
- interrupt()方法用于中断线程,isInterrupted()和interrupted()检查线程是否被中断,通常配合循环使用,中断标志可以作为退出循环的条件。 通过深入学习《JAVA并发编程艺术》,开发者能更好地理解并发编程的原理...