Java?Thread?類和Runnable?接口詳解
一、Thread 類
了解如何使用Thread 類實現(xiàn)多線程之后,繼續(xù)學(xué)習(xí)Thread 類實現(xiàn)多線程之后的相關(guān)功能及方法。
1、操作線程名稱的方法
構(gòu)造方法(實現(xiàn) Runnable 接口時候使用)
- public Thread(Runnable target,String name); 創(chuàng)建線程時設(shè)置線程名稱。
成員方法:
- public final void setName(String name); 設(shè)置線程的名稱。
- public final String getName(); 獲取線程的名稱。
Demo 代碼示例:
public class TestThread extends Thread{ @Override public void run() { for (int i = 1; i <= 10; i++) { System.out.println("我正在編寫多線程代碼"+ i); } } //程序主線程 main 線程 public static void main(String[] args) { //創(chuàng)建子類對象 TestThread thread = new TestThread(); // 設(shè)置線程名稱 thread.setName("姚青新創(chuàng)建的線程"); //調(diào)用 start() 方法開啟線程 thread.start(); for (int i = 1; i <= 10; i++) { System.out.println("我正在學(xué)習(xí)多線程"+ i); } // 獲取線程名稱 System.out.println(thread.getName()); } }
運行結(jié)果:
2、獲取當(dāng)前正在執(zhí)行的線程
public static Thread currentThread(); 返回當(dāng)前正在執(zhí)行的線程對象
獲取當(dāng)前線程對象:Thread.currentThread();
獲取當(dāng)前線程對象名稱 :Thread.currentThread().getName();
Demo代碼示例:
public class TestThread extends Thread{ @Override public void run() { for (int i = 1; i <= 5; i++) { System.out.println("我正在編寫多線程代碼"+ i); } // 獲取start()方法創(chuàng)建出來的線程對象 System.out.println(Thread.currentThread()); // 獲取start()方法創(chuàng)建出來的線程對象名稱 System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { TestThread thread = new TestThread(); thread.setName("姚青新創(chuàng)建的線程"); thread.start(); for (int i = 1; i <= 5; i++) { System.out.println("我正在學(xué)習(xí)多線程"+ i); } //System.out.println(thread.getName()); // 獲取main()主線程對象名稱 System.out.println(Thread.currentThread().getName()); } }
運行結(jié)果:
通過運行結(jié)果可以發(fā)現(xiàn),在控制臺上分別打印出了 “main”、“Thread[姚青新創(chuàng)建的線程,5,main]”、“姚青新創(chuàng)建的線程”,可以看出將新創(chuàng)建的線程對象和對象名稱以及主方法的線程名稱都打印出來了。
在使用這個方法的時候需要注意一點,該方法固定的寫法就是 Thread.currentThread(); 放在那個線程中執(zhí)行這個方法就是指定的那個線程。
相關(guān)文章
Java中SimpleDateFormat日期格式轉(zhuǎn)換詳解及代碼示例
這篇文章主要介紹了Java中SimpleDateFormat日期格式轉(zhuǎn)換詳解及代碼示例,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12eclipse+maven+spring mvc項目基本搭建過程
這篇文章主要介紹了eclipse+maven+spring mvc項目基本搭建過程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09springmvc九大組件之HandlerAdapter詳解
這篇文章主要介紹了springmvc九大組件之HandlerAdapter詳解,RequestMappingHandlerAdapter支持的handler的類型是HandlerMethod,而HandlerMethod是通過解析@RequestMapping注解獲得的,需要的朋友可以參考下2023-11-11idea?maven項目啟動項目不編譯target?文件的問題及解決方法
代碼編輯器中無編譯錯誤,通過maven 的clean 、compile、package進行各種操作也都沒問題,但是單擊綠色箭頭運行(默認(rèn)會先執(zhí)行IDE本身的Build操作)卻報:程序包xxx不存在,這篇文章主要介紹了解決idea maven項目啟動項目不編譯target文件問題,需要的朋友可以參考下2023-05-05