jse-1.1.3 线程中止 【信息】 【思考】 【行动/反馈】 【钩子】 【出处】 【时间】

线程中止

【信息】

不正确的线程中止-Stop

  • Stop:中止线程,并且清除监控器锁的信息,但是可能导致线程安全问题,JDK不建议用。
  • Destroy:JDK未实现

正确的线程中止-interrupt

如果目标线程在调用Object class的wait()、wait(long)或wait(long,int)方法、join()、join(long)、join(long,int)、sleep(long)或sleep(long,int)方法时被阻塞。那么interrupt会生效,该线程的中断状态将被清除,抛出InterruptedException异常。

如果目标线程是被I/O或NIO中的Channel所阻塞,同样,I/O操作会被中断或者返回特殊异常值。达到终止线程的目的。

如果以上条件都不满足,则会设置此线程的中断状态。

synchronize保证原子性

所见即所得

正确的线程中止-标志位

代码需要循环执行时

代码逻辑中,增加一个判断,用来控制线程执行的中止。

【思考】

什么地方会用到线程中止?有什么用?

【行动/反馈】

查下问题:

【钩子】

线程中止

【出处】

Java高级开发工程师-线程中止

【时间】

2018-12-24


若涉及版权问题,请及时联系作者删除。

更多精彩文章请关注