常用方法

  • 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代码地址

https://gitee.com/zhuayng/foundation-study/blob/develop/JavaBasis/JUC/src/main/java/com/yxkj/juc/c_000/InterruptDemo.java

最新文章

  1. java 连接数据库
  2. 玩转Windows服务系列——命令行管理Windows服务
  3. HTML 头部标记
  4. 【BZOJ-4326】运输计划 树链剖分 + 树上差分 + 二分
  5. tab左右箭头切换
  6. 决策树算法(1)含java源代码
  7. 用二进制大对象类型Blob实现图片入库与出库的操作
  8. HDU 5818 Joint Stacks
  9. algorithm@ KMP
  10. Prisma
  11. android基础知识点复习之短信发送
  12. C# Post方式下,取得其它端传过来的数据
  13. npm与cnpm的install无反应
  14. html 知识点
  15. java注释讲解
  16. 思科交换机根据mac地址限制主机
  17. 安装m4,autoconf,automake
  18. 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
  19. 【Eclipse】Eclipse上如何集成SVN插件
  20. nfs文件系统在linux下挂载不上的解决办法

热门文章

  1. Java编程基础
  2. 生成对抗网络GAN与DCGAN的理解
  3. JDBC编程工具类 Dbconnection
  4. redis-ha手动切换slave节点为master
  5. 《Python核心编程第3版中文版》(高清).PDF,免费无需任何解压密码
  6. 初识python 之 离线搭建pyhive环境(含python3安装)
  7. Flask_路由(二)
  8. [ flask ] 解耦models(解决models文件太臃肿的问题)
  9. ubuntu 18.04 检测到系统程序出现问题
  10. 实验 7 : OpenDaylight 实验 —— Python 中的 REST API 调用