java笔记--查看和修改线程名称
查看和修改线程名称
--如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3893797.html "谢谢--
java是一种允许并发控制的语言,在我们编写的程序的时候,总是伴随着多个线程的执行,
但是背后运行的是什么线程,我们是看不到的,那么又该如何才能知道有哪些线程在运行呢?
(请查看上一篇文章《获取JVM所有线程》"http://www.cnblogs.com/XHJT/p/3890280.html "这里就不多说了-_-)
另外正所谓"人如其名",很多时候我们查看到系统在运行的线程的名字可读性并不是很好,
所以我们可以根据此线程的功能来为线程换一个名称
在这里主要用到的方法有:
getName():获取当前线程的名称
setName();设置当前线程的名称
getID():返回当前线程的标识符
getThreadGroup:获得当前线程所在的线程组
注:新建的线程的ID是由系统自动分配的,不可指定,但是其名称可通过setName()设置;
代码实例:
package com.xhj.thread;
import java.util.Scanner;
/**
* 查看和修改线程名称
*
* @author XIEHEJUN
*
*/
public class ModifyThreadName implements Runnable {
@Override
public void run() {
}
/**
* 获取并打印出当前所有的线程
*
* @return
*/
public static Thread[] getThreads() {
ThreadGroup group = Thread.currentThread().getThreadGroup();
Thread[] threads = new Thread[group.activeCount()];
group.enumerate(threads, false);
System.out.println("当前运行的线程有:");
System.out.println("线程ID" + "\t线程名称");
for (Thread thread : threads) {
System.out.println(thread.getId() + "\t" + thread.getName());
}
return threads;
}
/**
* 程序数据输入口
*
* @return
*/
public static String input() {
Scanner sc = new Scanner(System.in);
String str = sc.next();
return str;
}
/**
* 查看,修改,新建线程 在新建线程时,线程的ID是由系统自动分配的
*
* @param id
* @param threads
*/
public static void modifyName(int id, Thread[] threads) {
try {
int count = -1;
for (Thread thread : threads) {
if (thread.getId() == (long) id) {
System.out.println("请输入您修改好了的名称:");
thread.setName(input());
break;
} else {
count++;
}
}
if (count == threads.length - 1) {
System.out.println("没有这个线程,将为您新建一个线程,请输入线程的名称:");
Thread new_thread = new Thread(input());
new_thread.start();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
try {
Thread[] threads = getThreads();
System.out.println("请输入您要修改的线程的ID:");
int n = Integer.parseInt(input());
modifyName(n, threads);
getThreads();
} catch (Exception e) {
System.out.println("2" + e.getMessage());
}
}
}
转载于:https://www.cnblogs.com/XHJT/p/3893797.html
java笔记--查看和修改线程名称相关推荐
- Java笔记11-【异常、线程】
主要内容 异常.线程 第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指 ...
- 【Java笔记】多线程与线程同步
文章目录 一. 多线程 1.并发与并行 2.进程与线程 3. 线程的创建 3.1 继承Thread类 3.2 实现Runnable接口 3.3实现callable接口 二. 线程安全 1.案例 2.线 ...
- Java笔记-concurrent集合及线程池
reentrantLock + condition实现 Blocking queue. java.util.concurrent提供了线程安全的Blocking集合:ArrayBlockingQueu ...
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--前篇
上篇里我讲到了java里如何去创建一个线程的问题,上篇的代码里创建的线程都是独立的,也就是说创建的线程都不会相互的干扰,独立的进行属于自己的运算,更重要的是上篇博文里创建的线程所使用的资源都是独占式的 ...
- 【JAVA笔记——道】Hibernate 线程本地化基础篇
在进行数据访问的时候每个用户对应一个线程,而用户的各种数据的处理都是通过线程来完成的. 根据Hibernate的功能分级,在Dao(Data Access Object)数据访问对象进行基本的对象处理 ...
- 获取线程名称 java 1615387415
获取线程名称 java 1615387415 多个线程一起跑的时候 有三个线程的运行 结果 无法明确子线程是哪个子线程的操作结果 获取与修改线程名称 演示 在线程的方法中 结果 获取当前线程对象 先获 ...
- Java 线程实例一(查看线程是否存活、获取当前线程名称、状态监测、线程优先级设置、死锁及解决方法、获取线程id、线程挂起)
查看线程是否存活 以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活: public class TwoThreadAlive extends Thre ...
- 修改线程的名称 java 1615387415
修改线程的名称 java 1615387415 setName方法 效果 利用带参构造法 实例化的时候 传入参数即可
- java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...
学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...
最新文章
- (每日一题)P3723 [AH2017/HNOI2017]礼物(经典FFT)
- 虚拟交换机软件_H3C交换机IRF配置介绍
- pip install jieba安装慢,安装失败,安装不解决办法
- React Native之函数作为参数传递给另外一个函数去调用
- 台电x80plus装linux,纤巧却不简单——台电X80 Plus评测
- MiniDao支持ID自增主键策略,使用讲解
- Redis学习---(14)Redis 事务
- !!!后续博客写到简书 + 博客园留博客目录
- 蓝桥杯2020年第十一届C++省赛第六题-成绩统计
- mysql算大型数据库吗_mysql – 估计大型数据库的大小和速度
- 数据集:各地区化妆品销量、人口数量和人均收入
- 计算机网络(北京理工大学出版社)课后习题答案
- MIT-JOS系列5:用户环境(一)
- Windows内核面试题(持续更新,目前完成度30%约1.8万字)
- LeetCode周赛
- linux系统发生假死状态处理办法
- drools-自成一派
- 最近有朋友问我,如何在自媒体上快速发文章?
- 实现pdf文件打印预览
- 如何在互联网存量时代做电商?
热门文章
- volatile指令重排_volatile可见性和指令重排
- 符号常量和变量有什么区别_JVM是什么?
- 大数据时代,海量数据处理常用思路和方法总结
- 安装 卸载 mysql linux,Linux 下MySQL 安装与卸载
- 项目服务接口设计_Spring Boot Security 整合 OAuth2 设计安全API接口服务
- 汇编学习--7.13--转移指令
- win10如何用管理员权限去运行服务器,让Visualstudio在win10下使用管理员方式运行...
- linux查看php执行用户,在浏览器中打开php文件时,是Linux中的哪个用户执行的?...
- 如果伦敦地铁图是数据科学家画的……
- java多线程之volatile理解