Java多线程编程核心(1)

Java多线程编程核心(1)

停止线程

本节主要讨论如何更好停止一个线程。停止线程意味着在线程处理完成任务之前放弃当前操作。

1.停不了的线程
可能大多数同学会使用interrupt()来停止线程,但是此方法并不能真的停止线程,仅仅是在当年线程中打了一个停止标记。

2.判断线程是否是停止状态
a)this.interrupted():测试当前线程是否已经中断,执行后具有将状态标志设置为false,即第二次调用此方法时,返回false.
b)this。isInterrupted():测试线程是否已经中断,不清楚状态标记。

3.异常法停止线程
建议使用此类方法,可以将线程停止的异常往上抛,使线程停止的事件得到传播

4.在沉睡中停止线程
sleep()+interrupt()

5.暴力停止线程
使用stop()停止。stop()方法在jdk6.0之后的版本已经作废。因为强制停止线程,有可能使一些请理性工作无法完成,再者对锁定的对象进行了解锁,导致数据不能进行同步处理,出现数据不一致。不建议使用。
6.return停止线程
interrupt() + return 
原文地址:https://www.cnblogs.com/lanxuan826/p/9873696.html