一、自然中止
run()执行完成或者抛出异常导致线程提前结束
二、stop()
在中止线程时不保证线程的资源释放,通常是没给与线程释放资源的机会,导致程序工作在不确定的状态下,因此被废弃
三、安全的中断机制(interrupt)
安全的中断是指:线程A需要被中断,由其他线程调用线程A的interrupt()方法对其进行中断操作(只是通知线程A,需要进行中断操作),Java中的线程是协作式的,线程A通过检查自己的中断标志位是否被置为true来进行响应
3.1 相关方法
isInterrupted():判断是否被中断
interrupted():判断是否被中断,同时将中断标志位改写为false
interrupt():中断线程
3.2 使用示例
如果线程处于阻塞状态,如调用了sleep(),join(),wait(),线程在检查中断标识为true时会在阻塞方法出抛出InterruptException异常,并且会将线程的中断标识为清除,重新设置为false
/**
* 继承Thread类实现安全终止功能
*/
public class EndUseThread {
static class UseThread extends Thread