java 线程池 中断_如何中断(interrupt)线程(thread)(线程池的线程中断我的理解是一个意思)...
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)(线程池的线程中断我的理解是一个意思)...相关推荐
- hal库开启中断关中断_(2)STM32使用HAL库操作外部中断——理论讲解
1.中断触发过程 对主程序压栈--把中断服务函数的地址写入到程序计数器(PC)--执行中断服务函数 2.中断向量表 中断服务函数的地址在STM32的手册上的中断向量表中(如下是一部分): 如上表所示, ...
- jmeter 线程执行顺序_面试官让我说出8种线程顺序执行的方法!我懵了
https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止 ...
- stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
前言 上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且 ...
- mysql 频繁连接中断_记一次网络原因导致的mysql连接中断问题(druid)
date: 2018-04-19 21:00 tag: java,mysql,exception,mat,调试,jvm 线上系统出现一个诡异的bug,通过heap dump分析 分析: 通过日志确认系 ...
- 全局中断_实时性迷思(3)——80%时间屏蔽了中断,实时性还有救么?
[写在前面的话] 在本系列的第一篇文章<实时性迷思(1)--快是优点么?>中,我们介绍了实时性的基本模型: 并得出两个重要的结论: 实时性只关注"是否能在实时性窗口内完成对应事件 ...
- java pid 获取句柄_获取进程pid、根据进程pid获取线程pid、获取线程进程句柄
======================================= 获取进程pid ======================================= #include &qu ...
- python while break try 无法中断_解码不能正常工作并且while循环不能正确中断python...
这是一个使用Python中的TCP套接字的文件传输应用程序.文件传输协议将包含一个名为ftps.py文件一个客户打电话来ftpc.py文件. 在 文件传输应用程序将使用一个简单的协议.前4个字节(按网 ...
- java super快速生成_为什么当我使用编辑器代码生成器时,eclipse会在构造函数中自动添加一个java super()方法?...
正如@Kon在他的评论中提到的, Java中的一个空构造函数包含对超类构造函数的隐式调用. 此外,没有明确调用super()的非空构造函数将在顶部具有隐式调用. 离开super()调用是唯一的时候,如 ...
- ARM通用中断控制器GIC(generic Interrupt Controller)简介
参考文档: Documentation – Arm Developer ARM Generic Interrupt Controller Architecture Specification 目录 ...
- java闹钟程序声音_跪求高手帮忙写一个JAVA手机闹钟程序 实现添加铃声和设置多闹钟...
展开全部 import java.util.*; import java.awt.*; import java.applet.*; import java.text.*; public class A ...
最新文章
- 【工具】Internet Download Manager( IDM )抓取站点
- 如何像青少年一样玩转 Snapchat
- 基于python的界面自动化测试-基于 Python 的接口自动化测试实例
- 今日头条在消息服务平台和容灾体系建设方面的实践与思考
- android开发控件水波纹,Android实现水波纹控件的方法
- java并发包系列---LockSupport
- 9 个基于JavaScript 和 CSS 的 Web 图表框架
- 获取iOS任意线程调用堆栈(五)完整实现:BSBacktraceLogger
- docker安装rabbitmq步骤
- python中字典类型中的item是什么-Python中的字典介绍
- RocketMQ 介绍与安装
- Android SearchView 实现搜索框
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_1_软件结构...
- Atitit html5 Canvas 如何自适应屏幕大小
- cf1668E. Half Queen Cover 思维
- springboot网上投资借贷中介服务毕业设计-附源码221506
- matlab混沌映射,混沌映射MATLAB仿真.docx
- easyui tree修改图标
- 山东海王星·关于国内文旅水上乐园的运营营销构思
- sonar入门:全网最全的概念解析与安装
热门文章
- 2017-2018-1 20155201 实验五 通讯协议设计
- WPF 10天修炼 第四天- WPF布局容器
- HTTP请求分析工具Fiddler
- 【C++】复制构造函数
- 预览文章: c++ primer学习笔记,二:标准库类型
- FCKeditor所有版本任意文件上传缺陷
- 119.CSMA/CD
- Java中的occur_time,PLSQL报错: ORA-12170:TNS connect timeout occurred
- mac 源生安装mysql_docker安装MySQL数据库
- java中打开的线程怎么关闭_[求助] 用线程怎么关闭运行中的窗口