1.概述基本实现是,通过 InterruptedException 异常来终止程序,至于线程什么时候终止,只能由jvm来决定了,若理解的不到位,欢迎大牛们指点

2.code 如下

package com.qimh.springbootfiledemo.Thread;

import com.google.common.collect.Maps;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Map;

/**

* 演示:现在在sleep,wait,join 时 ,调用调用线程的interrupt()方法,通过异常来终止方法

* 参考连接:https://blog.csdn.net/ywl470812087/article/details/88412255

*/

public class SleepInterruptUpgrade {

static Map threads = Maps.newHashMap();

public static void main(String[] args) {

SleepThread2 t1 = new SleepThread2();

t1.start();

try {

Thread.sleep(5000);//主线程休眠

System.out.println("main thread 休眠结束....");

} catch (InterruptedException e) {

e.printStackTrace();

}

//t1.interrupt();//主动打断线程,使SleepThread线程抛出异常

threads.get(t1.getId()).interrupt();

System.out.println("集合元素移除前个数:"+ threads.size());

//线程从map中移除

threads.remove(t1.getId());

System.out.println("集合元素移除后个数:"+ threads.size());

}

}

class SleepThread2 extends Thread {

// public synchronized void run() {

public void run() {

//线程放入map中

// SleepInterruptUpgrade.threads.put(this.getId(), this);

SleepInterruptUpgrade.threads.put(Thread.currentThread().getId(), Thread.currentThread());

while (true) {

try {

SimpleDateFormat sim = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");

System.out.println(sim.format(new Date()));

sleep(1000);

// wait();

} catch (Exception e) {

e.printStackTrace();

System.out.println("线程中断");

return;

}

}

}

}

参考连接:https://blog.csdn.net/ywl470812087/article/details/88412255

java 线程池 中断_如何中断(interrupt)线程(thread)(线程池的线程中断我的理解是一个意思)...相关推荐

  1. hal库开启中断关中断_(2)STM32使用HAL库操作外部中断——理论讲解

    1.中断触发过程 对主程序压栈--把中断服务函数的地址写入到程序计数器(PC)--执行中断服务函数 2.中断向量表 中断服务函数的地址在STM32的手册上的中断向量表中(如下是一部分): 如上表所示, ...

  2. jmeter 线程执行顺序_面试官让我说出8种线程顺序执行的方法!我懵了

    https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止 ...

  3. stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)

    前言 上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且 ...

  4. mysql 频繁连接中断_记一次网络原因导致的mysql连接中断问题(druid)

    date: 2018-04-19 21:00 tag: java,mysql,exception,mat,调试,jvm 线上系统出现一个诡异的bug,通过heap dump分析 分析: 通过日志确认系 ...

  5. 全局中断_实时性迷思(3)——80%时间屏蔽了中断,实时性还有救么?

    [写在前面的话] 在本系列的第一篇文章<实时性迷思(1)--快是优点么?>中,我们介绍了实时性的基本模型: 并得出两个重要的结论: 实时性只关注"是否能在实时性窗口内完成对应事件 ...

  6. java pid 获取句柄_获取进程pid、根据进程pid获取线程pid、获取线程进程句柄

    ======================================= 获取进程pid ======================================= #include &qu ...

  7. python while break try 无法中断_解码不能正常工作并且while循环不能正确中断python...

    这是一个使用Python中的TCP套接字的文件传输应用程序.文件传输协议将包含一个名为ftps.py文件一个客户打电话来ftpc.py文件. 在 文件传输应用程序将使用一个简单的协议.前4个字节(按网 ...

  8. java super快速生成_为什么当我使用编辑器代码生成器时,eclipse会在构造函数中自动添加一个java super()方法?...

    正如@Kon在他的评论中提到的, Java中的一个空构造函数包含对超类构造函数的隐式调用. 此外,没有明确调用super()的非空构造函数将在顶部具有隐式调用. 离开super()调用是唯一的时候,如 ...

  9. ARM通用中断控制器GIC(generic Interrupt Controller)简介

    参考文档: Documentation – Arm Developer  ARM Generic Interrupt Controller Architecture Specification 目录 ...

  10. java闹钟程序声音_跪求高手帮忙写一个JAVA手机闹钟程序 实现添加铃声和设置多闹钟...

    展开全部 import java.util.*; import java.awt.*; import java.applet.*; import java.text.*; public class A ...

最新文章

  1. 【工具】Internet Download Manager( IDM )抓取站点
  2. 如何像青少年一样玩转 Snapchat
  3. 基于python的界面自动化测试-基于 Python 的接口自动化测试实例
  4. 今日头条在消息服务平台和容灾体系建设方面的实践与思考
  5. android开发控件水波纹,Android实现水波纹控件的方法
  6. java并发包系列---LockSupport
  7. 9 个基于JavaScript 和 CSS 的 Web 图表框架
  8. 获取iOS任意线程调用堆栈(五)完整实现:BSBacktraceLogger
  9. docker安装rabbitmq步骤
  10. python中字典类型中的item是什么-Python中的字典介绍
  11. RocketMQ 介绍与安装
  12. Android SearchView 实现搜索框
  13. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_1_软件结构...
  14. Atitit html5 Canvas 如何自适应屏幕大小
  15. cf1668E. Half Queen Cover 思维
  16. springboot网上投资借贷中介服务毕业设计-附源码221506
  17. matlab混沌映射,混沌映射MATLAB仿真.docx
  18. easyui tree修改图标
  19. 山东海王星·关于国内文旅水上乐园的运营营销构思
  20. sonar入门:全网最全的概念解析与安装

热门文章

  1. 2017-2018-1 20155201 实验五 通讯协议设计
  2. WPF 10天修炼 第四天- WPF布局容器
  3. HTTP请求分析工具Fiddler
  4. 【C++】复制构造函数
  5. 预览文章: c++ primer学习笔记,二:标准库类型
  6. FCKeditor所有版本任意文件上传缺陷
  7. 119.CSMA/CD
  8. Java中的occur_time,PLSQL报错: ORA-12170:TNS connect timeout occurred
  9. mac 源生安装mysql_docker安装MySQL数据库
  10. java中打开的线程怎么关闭_[求助] 用线程怎么关闭运行中的窗口