java中如何獲取線程名稱
java獲取線程名稱
調(diào)用MyThread中的方法
package cn.itcast.day09.getName;
import cn.itcast.day09.getName.MyThread;
/*
線程的名稱:
主線程:main
新線程:Thread-1,Thread-0,Thread-2
*/
public class Demo01Thread {
public static void main(String[] args) {
//3.創(chuàng)建Thread類的子類對象
MyThread mt=new MyThread();
//調(diào)用Thread類中的方法start方法,開啟新的線程,執(zhí)行run方法
mt.start();
new MyThread().start();
new MyThread().start();
System.out.println(Thread.currentThread().getName());
}
}package cn.itcast.day09.getName;
/*
獲取線程的名稱:
1.使用Thread類中的方法getName()
String gerName()返回該線程的名稱
2.可以先獲取到當前正在執(zhí)行的線程,使用線程中的方法getName()獲取線程的名稱
static Thread currentThread() 返回對當前正在執(zhí)行的線程對象的引用
*/
public class MyThread extends Thread {
// 重寫 Thread類中的run方法,設置線程任務
public void run() {
//獲取線程的名稱:
//使用Thread類中的方法getName()
// String name = getName();
// System.out.println(name);
// static Thread currentThread() 返回對當前正在執(zhí)行的線程對象的引用
// Thread t=Thread.currentThread();
// System.out.println(t);
//
// String name = t.getName();
// System.out.println(name);
System.out.println(Thread.currentThread().getName());
}
}獲取線程 ID 和當前線程
點睛
1 API
// 獲取線程唯一 ID public long getId() // 獲取線程名稱 public final String getName() // 當前執(zhí)行線程的引用 public static native Thread currentThread()
2 說明
線程的 ID 在整個 JVM 進程中都會是唯一的,并且從 0 開始逐次遞增。
mian 線程的 getId() 并不等于0,這是因為在一個 JVM 進程啟動的時候,實際上是開辟了很多個線程,自增序列已經(jīng)有了一定的消耗,因此我們自己創(chuàng)建的線程并不是從0開始的。
實戰(zhàn)
1 代碼
package concurrent;
public class ThreadIDAndName {
? ? public static void main(String[] args) {
? ? ? ? Thread thread = new Thread() {
? ? ? ? ? ? public void run() {
? ? ? ? ? ? ? ? System.out.println(Thread.currentThread() == this);
? ? ? ? ? ? ? ? System.out.println("sub Thread ?name is " + Thread.currentThread().getName());
? ? ? ? ? ? ? ? System.out.println("sub Thread is " + Thread.currentThread().getId());
? ? ? ? ? ? }
? ? ? ? };
? ? ? ? thread.start();
? ? ? ? System.out.println("main Thread name is " + Thread.currentThread().getName());
? ? ? ? System.out.println("main Thread id is " + Thread.currentThread().getId());
? ? }
}2 測試
main Thread name is main true main Thread id is 1 sub Thread ?name is Thread-0 sub Thread is 12
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java局部內(nèi)部類和匿名內(nèi)部類定義與用法實例分析
這篇文章主要介紹了Java局部內(nèi)部類和匿名內(nèi)部類,結(jié)合實例形式分析了java局部內(nèi)部類和匿名內(nèi)部類相關(guān)定義、原理與用法,需要的朋友可以參考下2019-08-08
java中的HashSet與 == 和 equals的區(qū)別示例解析
HashSet是Java中基于哈希表實現(xiàn)的集合類,特點包括:元素唯一、無序和可包含null,本文給大家介紹java中的HashSet與 == 和 equals的區(qū)別,感興趣的朋友一起看看吧2025-02-02
Java高并發(fā)場景下的 HttpClient請求優(yōu)化實現(xiàn)
本文主要介紹了Java高并發(fā)場景下的 HttpClient請求優(yōu)化實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-01-01
SpringBoot使用阿里oss實現(xiàn)文件上傳的流程步驟
云服務指的就是通過互聯(lián)網(wǎng)對外提供的各種各樣的服務,比如像:語音服務、短信服務、郵件服務、視頻直播服務、文字識別服務、對象存儲服務等等,本文通過代碼示例和圖文給大家介紹了SpringBoot使用阿里oss實現(xiàn)文件上傳的流程步驟,需要的朋友可以參考下2025-01-01
Java對象以Hash結(jié)構(gòu)存入Redis詳解
這篇文章主要介紹了Java對象以Hash結(jié)構(gòu)存入Redis詳解,和Java中的對象非常相似,卻不能按照Java對象的結(jié)構(gòu)直接存儲進Redis的hash中,因為Java對象中的field是可以嵌套的,而Redis的Hash結(jié)構(gòu)不支持嵌套結(jié)構(gòu),需要的朋友可以參考下2023-08-08

