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類的子類對(duì)象
MyThread mt=new MyThread();
//調(diào)用Thread類中的方法start方法,開(kāi)啟新的線程,執(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.可以先獲取到當(dāng)前正在執(zhí)行的線程,使用線程中的方法getName()獲取線程的名稱
static Thread currentThread() 返回對(duì)當(dāng)前正在執(zhí)行的線程對(duì)象的引用
*/
public class MyThread extends Thread {
// 重寫(xiě) Thread類中的run方法,設(shè)置線程任務(wù)
public void run() {
//獲取線程的名稱:
//使用Thread類中的方法getName()
// String name = getName();
// System.out.println(name);
// static Thread currentThread() 返回對(duì)當(dāng)前正在執(zhí)行的線程對(duì)象的引用
// Thread t=Thread.currentThread();
// System.out.println(t);
//
// String name = t.getName();
// System.out.println(name);
System.out.println(Thread.currentThread().getName());
}
}獲取線程 ID 和當(dāng)前線程
點(diǎn)睛
1 API
// 獲取線程唯一 ID public long getId() // 獲取線程名稱 public final String getName() // 當(dāng)前執(zhí)行線程的引用 public static native Thread currentThread()
2 說(shuō)明
線程的 ID 在整個(gè) JVM 進(jìn)程中都會(huì)是唯一的,并且從 0 開(kāi)始逐次遞增。
mian 線程的 getId() 并不等于0,這是因?yàn)樵谝粋€(gè) JVM 進(jìn)程啟動(dòng)的時(shí)候,實(shí)際上是開(kāi)辟了很多個(gè)線程,自增序列已經(jīng)有了一定的消耗,因此我們自己創(chuàng)建的線程并不是從0開(kāi)始的。
實(shí)戰(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 測(cè)試
main Thread name is main true main Thread id is 1 sub Thread ?name is Thread-0 sub Thread is 12
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于SpringMVC接受JSON參數(shù)詳解及常見(jiàn)錯(cuò)誤總結(jié)
下面小編就為大家分享一篇基于SpringMVC接受JSON參數(shù)詳解及常見(jiàn)錯(cuò)誤總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
基于Java實(shí)將現(xiàn)Excel轉(zhuǎn)換為HTML
在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,Excel?作為數(shù)據(jù)存儲(chǔ)和分析的利器,幾乎無(wú)處不在,,本文將深入探討如何利用?Java,結(jié)合強(qiáng)大的?Spire.XLS?for?Java?庫(kù),輕松實(shí)現(xiàn)?Excel?到?HTML?的高效轉(zhuǎn)換,感興趣的可以了解下2025-08-08
System.getProperty(“l(fā)ine.separator“)含義及意義詳解
這篇文章主要介紹了System.getProperty(“l(fā)ine.separator“)含義,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
SpringCloud 微服務(wù)最佳開(kāi)發(fā)實(shí)踐
本文結(jié)合我們實(shí)際的開(kāi)發(fā)中遇到的一些問(wèn)題整理出了一份微服務(wù)開(kāi)發(fā)的實(shí)踐規(guī)范,對(duì)SpringCloud 微服務(wù)開(kāi)發(fā)實(shí)踐相關(guān)知識(shí)感興趣的朋友一起看看吧2021-07-07
SpringBoot加載外部Jar實(shí)現(xiàn)功能按需擴(kuò)展
這篇文章主要為大家詳細(xì)介紹了SpringBoot加載外部Jar實(shí)現(xiàn)功能按需擴(kuò)展的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-06-06
Java實(shí)現(xiàn)文字滾動(dòng)廣告字幕效果
文字滾動(dòng)廣告字幕是一種常見(jiàn)的動(dòng)態(tài)文本展示效果,通常用于展示新聞、廣告或其他動(dòng)態(tài)信息,在本項(xiàng)目中,我們將使用Java的Swing庫(kù)來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文字滾動(dòng)廣告字幕效果,通過(guò)定時(shí)更新文本的位置來(lái)模擬文字的滾動(dòng),需要的朋友可以參考下2025-02-02

