并发编程:线程的中断机制

本文详细介绍了线程的三种中止方式:自然中止、废弃的stop方法以及安全的中断机制。安全中断是通过调用interrupt()方法通知线程需要中断,线程在检查到中断标志位为true时进行相应操作。在阻塞状态下如sleep()、join()、wait(),中断会抛出InterruptedException并清除中断标志位。
摘要由CSDN通过智能技术生成


一、自然中止

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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值