线程的休眠是可以打断的,而这种打断是由其他线程完成的。在Thread类里面提供有这种中断执行的处理方法:
- 判断线程是否被中断:public boolean isInterrupted();
- 中断线程执行:public void interrupt();
public class Main{
public static void main(String args[]) {
Runnable run = ()->{
System.out.println("***start***");
try {
Thread.sleep(10000); // 预计休眠十秒
}
catch(InterruptedException e) {
// e.printStackTrace();
System.out.println("被中断了");
}
System.out.println("***end***");
};
Thread thread = new Thread(run);
thread.start();
if(!thread.isInterrupted()) { // 该线程中断了吗
thread.interrupt();
}
}
}
所有正在执行的线程都是可以被中断的,中断的线程都必须进行异常的处理。