调用interrupt()方法仅仅是在线程中打了一个停止的标记,并不是真的停止线程。(想中断哪个线程,就给哪个线程打标)
public class Run {
public static void main(String[] args) {
CountOperate c=new CountOperate();
Thread thread=new Thread(c);
c.setName("ATest");
try{
Thread.sleep(2000);
c.start();
//给 main线程 打一个中断的标记
Thread.currentThread().interrupt();
//给 CountOperate线程 打一个中断的标记
c.interrupt();
//给 thread线程 打一个中断的标记
thread.interrupt();
}catch (InterruptedException e){
}
}
}
但是并不会停止线程,需要增加一个判断线程的状态。
Thread.java中提供了两种方法:
1、interrupted()方法
//静态方法,哪一个线程调用该方法,那么就判断该线程是否终止
//与具体的线程对象无关,只与方法存在的位置有关
//能够清除状态
public static boolean interrupted();