Thread的打断
2024-09-08 04:07:48
常用方法
- public void interrupt()
t.interrupt() 打断t线程(设置t线程某给标志位f=true,并不是打断线程的运行),不能打断正在竞争锁的线程。 - public boolean isInterrupted()
t.isInterrupted() 查询打断标志位是否被设置(是不是曾经被打断过)。 - public static boolean interrupted()
Thread.interrupted() 查看“当前”线程是否被打断,如果被打断,恢复标志位。 - lockInterruptibly()
可以打断正在竞争锁的线程synchronized()。
代码
public void interrupt(){
//判断当前线程是否被打断
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
//睡眠时,被打断时自动恢复
e.printStackTrace();
//再次打断
Thread.currentThread().interrupt();
}
boolean interrupted = Thread.currentThread().isInterrupted();
System.out.println("当前线程是否被打断1--->"+interrupted);
//查看“当前”线程是否被打断,如果被打断,恢复标志位
boolean interrupted1 = Thread.interrupted();
System.out.println("当前线程是否被打断2--->"+interrupted1);
boolean interrupted3 = Thread.currentThread().isInterrupted();
System.out.println("当前线程是否被打断3--->"+interrupted3);
}
public void demo(){
InterruptDemo interrupt=new InterruptDemo();
Thread t1 = new Thread(interrupt::interrupt, "t1");
t1.start();
//打断t线程(设置t线程某给标志位f=true,并不是打断线程的运行)
t1.interrupt();
}
Gitee代码地址
最新文章
- java 连接数据库
- 玩转Windows服务系列——命令行管理Windows服务
- HTML 头部标记
- 【BZOJ-4326】运输计划 树链剖分 + 树上差分 + 二分
- tab左右箭头切换
- 决策树算法(1)含java源代码
- 用二进制大对象类型Blob实现图片入库与出库的操作
- HDU 5818 Joint Stacks
- algorithm@ KMP
- Prisma
- android基础知识点复习之短信发送
- C# Post方式下,取得其它端传过来的数据
- npm与cnpm的install无反应
- html 知识点
- java注释讲解
- 思科交换机根据mac地址限制主机
- 安装m4,autoconf,automake
- 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
- 【Eclipse】Eclipse上如何集成SVN插件
- nfs文件系统在linux下挂载不上的解决办法
热门文章
- Java编程基础
- 生成对抗网络GAN与DCGAN的理解
- JDBC编程工具类 Dbconnection
- redis-ha手动切换slave节点为master
- 《Python核心编程第3版中文版》(高清).PDF,免费无需任何解压密码
- 初识python 之 离线搭建pyhive环境(含python3安装)
- Flask_路由(二)
- [ flask ] 解耦models(解决models文件太臃肿的问题)
- ubuntu 18.04 检测到系统程序出现问题
- 实验 7 : OpenDaylight 实验 —— Python 中的 REST API 调用