一个多个线程在执行的Java程序,只有当其全部的线程执行结束时,它才会结束运行。有时,你需要为了终止程序而结束一个线程,或者当程序的用户想要取消某个Thread对象正在做的任务。
Java提供中断机制来通知线程表明我们想要结束它。中断机制的特性是线程需要检查是否被中断,而且还可以决定是否响应结束的请求。所以,线程可以忽略中断请求并且继续运行。
isInterrupted()是一个boolean静态方法能检测进程是否处于中断状态,处于输出true否则false
下面的程序将会在程序启动10s后使用中断机制来推出程序
package comunication;
import java.util.Scanner;
class TTTT extends Thread{
@Override
public void run() {
try {
while (true) {
System.out.println(this.isInterrupted());
if(this.isInterrupted()){
break;
}
System.out.println(Thread.currentThread().getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class 中断 {
public static void main(String[] args) {
TTTT t=new TTTT();
t.start();
// try {
// Thread.sleep(5000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
//t.interrupt();//改变状态,将线程改变为中断状态
long tt=System.currentTimeMillis();
while (System.currentTimeMillis()<tt+10000);
t.interrupt();//
}
}