根据线程名获取线程及停止线程
线程的命名与获取名称方法
设置名称可以使用Thread类的如下方法:
*构造方法:public Thread (Runnable Target,String name)
*设置名字:public final void setName(String name)
获取线程名城:
*当前运行的线程名称:Thread.currentThread().getName()
*取得名字:public final String getName()
创建运行线程
public class MyThread extends Thread{
@Override
public void run() {
try {
sleep(Constants.OPERATION_AMOUNT_THREAD_TIME);
/**
逻辑代码
*/
} catch (InterruptedException e) {
Logger.info("线程:" + Thread.currentThread().getName()+"结束.");
System.out.println(e.getMessage());
}
}
}
MyThread oat= newMyThread ();
oat.setName("110");
System.out.println("创建线程"+oat.getName());
oat.start();
根据线程名获取线程
获取所有线程
public class Main extends Thread {
public static void main(String[] args) {
Main t1 = new Main();
t1.setName("thread1");
t1.start();
ThreadGroup currentGroup =
Thread.currentThread().getThreadGroup();
int noThreads = currentGroup.activeCount();
Thread[] lstThreads = new Thread[noThreads];
currentGroup.enumerate(lstThreads);
for (int i = 0; i < noThreads; i++)
System.out.println("线程号:" + i + " = " + lstThreads[i].getName());
}
}
以上代码运行输出结果为:
线程号:0= main
线程号:1= thread1
对对应的线程进行interrupt() (安全结束sleep中的进程的方式)
对sleep中的线程进行interrupt()会抛异常 走catch方法 run方法正常结束 安全的停止线程。
可根据自己的业务进程设计停止线程的方式 ,不建议使用stop方法 ,因为存在数据的一致性问题,并且stop方法已经呗java过期了。
停止进程的方式详见 https://fzy15116089232.blog.csdn.net/article/details/111320907
//杀线程
public static boolean killThreadByName(String name) {
ThreadGroup currentGroup = Thread.currentThread().getThreadGroup();
int noThreads = currentGroup.activeCount();
Thread[] lstThreads = new Thread[noThreads];
currentGroup.enumerate(lstThreads);
Logger.info("现有线程数" + noThreads);
for (int i = 0; i < noThreads; i++) {
String nm = lstThreads[i].getName();
Logger.info("线程号:" + i + " = " + nm);
if (nm.equals(name)) {
lstThreads[i].interrupt();
return true;
}
}
return false;
}
根据线程名获取线程及停止线程相关推荐
- 线程池5:与停止线程池,相关的五个方法;(shutdown(),isShutdown(),isTerminated(),awaitTermination(),shutdownNow();)
说明: (1)介绍与停止线程池相关的五个方法:shutdown(),isShutdown(),isTerminated(),awaitTermination(),shutdownNow(): 目录 一 ...
- 进程handle获取线程_获取进程中的线程列表
进程handle获取线程 The System.Diagnostics namespace contains functions that allow you to manage processes, ...
- java获取其他类的线程,使用Java实现面向对象编程——第七章 多线程
1.进程:是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间): Eg:用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当用户再次点击左面的IE浏览器, ...
- 性能优化:线程快照获取与分析
参考资料: <JAVA线程状态梳理以及Jstack命令使用> <Java线程Dump分析> <jstack生成的Thread Dump日志线程状态> <常见的 ...
- 你真的会停止线程吗?
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:Greta Wang 出处:http: ...
- java 线程强制停止线程_java多线程之停止线程
在多线程开发中停止线程是非常重要的技术点. 停止线程在Java语言中并不像break语句那样干脆.须要一些技巧性的处理. 一. 异常法 採用异常法来停止一个线程.首先我们须要了解一下两个方法的使用方 ...
- 调用方法try起来的好处_Java:一个重要的停止线程方法——interrupt
一.前言 之前本人写了一篇防止Controller中的线程被重复调用的文章,大概代码如下: //sonarqube检查要求static变量必须是final,为避开检查,使用final HashMapp ...
- 一篇就够,线程与线程池的那些事之线程池篇
本文关键字: 线程 , 线程池 , 单线程 , 多线程 , 线程池的好处 , 线程回收 , 创建方式, 核心参数 , 底层机制 , 拒绝策略 , 参数设置 , 动态监控 , 线程隔离 线程和线程池相关 ...
- 第三十三天- 线程创建、join、守护线程、死锁
1.线程,线程创建 概念:在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程,线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责 ...
最新文章
- 如何搭建modem编译环境
- 学习笔记Hadoop(一)—— Hadoop介绍(1)——认识大数据
- 零基础如何学习Java,这里分享一些技巧心得
- 怎样写 OpenStack Neutron 的 Extension (四)
- [转]如何进行单元测试
- 程序媛计划——python数据库
- http://www.easyui.info/archives/396.html
- scanner 获取控制台信息_Java使用Scanner类进行控制台输入实现方法
- ASP.Net学习笔记002--ASP.Net服务端控件做了什么2
- IDEA 这么设置 Maven,再也不用担心依赖下载失败了
- 最新服装零售软件管理排名
- 【win10 cuda pytorch】从无到有配置gpu运算pytorch的极度详细完整方法教程(包括各种坑),网上其他方法基本可行性不高
- 222Beta多样性限制性排序CPCoA/CCA/RDA/LDA
- 软件智能:aaas系统的 AI服务功能:大纲图的无意识代理功能和八卦图的关系
- 佛理(引用别人的东西,怕忘记了不好找,拿来了,哈哈)
- Codeforces Gym 100015 简要题解
- 《Python编程入门到实践》 第四章 操作列表
- 一阶电路暂态响应的结果分析。_【技术】关于开关电源的分析、计算、仿真
- Android手机电池耐用吗,八款超长待机的智能手机 大容量电池十分耐用
- Python复制单个文件为多个脚本
热门文章
- “梧桐杯”中国移动大数据应用创新大赛 - 智慧城市赛道baseline
- 2021春季推荐算法实习生面经
- 自动驾驶公司 | 纵目科技完成D轮1.9亿美元融资
- 利用screen和nohup让Linux服务器后台运行程序
- Linux编程(5)_静态库与动态库
- 计算机图像类型ppt,计算机图像处理.ppt
- 台式计算机视频设备打不开,电脑视频设备被占用未能创建视频预览怎么办
- mysql datasource.url_SpringBoot配置数据源DataSource
- css3 shapes是什么意思,CSS Shapes有哪些让人兴奋之处
- byte数组转blob类型_Java类型相互转换byte[]类型,blob类型