网站首页 > java教程 正文
interrupt:设置线程的打断标记,线程调用interrupt并不是终止该线程的运行,而是将该线程的打断标记设置为true;该线程在每次执行的时候,判断一下打断标志是否为true,如果为true那么可以终止该线程的运行;
重点:
1、如果线程处于sleep、wait、join的时候调用了interrupt,那么线程会进入InterruptedException异常里面,并会重置线程的打断标记为false;
2、如果线程在正常运行的时候,调用了Interrupt,那么该线程的打断标记变为true,并且不会被重置为false;
isInterrupted:获取该线程的打断标记值,true或者false;
Interrupted:获取该线程的打断标记值,并且会重置值为false;
以下通过代码演示,处于睡眠状态的线程被打断后,会重置打断的标记为false;
package pro01;
public class Test01 {
public static void main(String[] args) throws Exception{
Thread t1 = new Thread( () -> {
System.out.println("t1线程开始执行!!!");
try {
//t1线程睡眠10秒钟
System.out.println("t1线程睡眠10秒钟!!!");
Thread.sleep(10000);
} catch (InterruptedException e) {
System.out.println("t1线程睡眠被打断!!!");
e.printStackTrace();
}
} ,"t1");
//启动t1线程
t1.start();
//主线程睡眠一秒钟
Thread.sleep(1000);
System.out.println("1秒后主线程打断t1线程睡眠");
//打断t1线程睡眠
t1.interrupt();
System.out.println("t1线程打断标记为:"+t1.isInterrupted());
}
}
执行结果:
t1线程开始执行!!!
t1线程睡眠10秒钟!!!
1秒后主线程打断t1线程睡眠
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at pro01.Test01.lambda$0(Test01.java:12)
at java.lang.Thread.run(Thread.java:745)
t1线程睡眠被打断!!!
t1线程打断标记为:false
以下是以上代码的完整截图
猜你喜欢
- 2025-10-02 Java线程实现原理及相关机制_java线程的实现
- 2025-10-02 Java处理百万级消息积压方案_java 实时处理亿级数据
- 2025-10-02 阻塞模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
- 2025-10-02 安卓7系统设置永不休眠_android 设置永不休眠
你 发表评论:
欢迎- 最近发表
-
- JUC系列之《CompletableFuture:Java异步编程的终极武器》
- SpringBoot+Jasync异步化改造狂降90%耗时,百万并发下的性能杀戮
- Java异步编程神器:CompletableFuture实战技巧
- Spring Boot 异步请求 + 虚拟线程性能提升?结果很意外
- 异步可以单线程,但高并发的异步肯定要用线程池
- Java线程实现原理及相关机制_java线程的实现
- java线程终止 interrupt 关键字详解
- Java处理百万级消息积压方案_java 实时处理亿级数据
- 阻塞模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
- 安卓7系统设置永不休眠_android 设置永不休眠
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)