Java繼承Thread類(lèi)創(chuàng)建線程類(lèi)示例
本文實(shí)例講述了Java繼承Thread類(lèi)創(chuàng)建線程類(lèi)。分享給大家供大家參考,具體如下:
一 點(diǎn)睛
通過(guò)繼承Thread類(lèi)創(chuàng)建線程并啟動(dòng)多線程的步驟:
1 定義Thread的子類(lèi),并重寫(xiě)該類(lèi)的run()方法,該run()方法的方法體代表了線程需要完成的任務(wù)。因此run()方法稱(chēng)為線程執(zhí)行體。
2 創(chuàng)建Thread子類(lèi)的實(shí)例,即創(chuàng)建子線程對(duì)象。
3 調(diào)用線程對(duì)象的start()方法來(lái)啟動(dòng)該線程。
二 代碼
// 通過(guò)繼承Thread類(lèi)來(lái)創(chuàng)建線程類(lèi) public class FirstThread extends Thread { private int i ; // 重寫(xiě)run方法,run方法的方法體就是線程執(zhí)行體 public void run() { for ( ; i < 100 ; i++ ) { // 當(dāng)線程類(lèi)繼承Thread類(lèi)時(shí),直接使用this即可獲取當(dāng)前線程 // Thread對(duì)象的getName()返回當(dāng)前該線程的名字 // 因此可以直接調(diào)用getName()方法返回當(dāng)前線程的名 System.out.println(getName() + " " + i); } } public static void main(String[] args) { for (int i = 0; i < 100; i++) { // 調(diào)用Thread的currentThread方法獲取當(dāng)前線程 System.out.println(Thread.currentThread().getName() + " " + i); if (i == 20) { // 創(chuàng)建、并啟動(dòng)第一條線程 new FirstThread().start(); // 創(chuàng)建、并啟動(dòng)第二條線程 new FirstThread().start(); } } } }
三 運(yùn)行
......
main 20
main 21
main 22
Thread-0 0
main 23
Thread-1 0
main 24
Thread-0 1
main 25
Thread-1 1
main 26
Thread-0 2
main 27
Thread-1 2
main 28
......
四 說(shuō)明
1 雖然程序只顯示地創(chuàng)建并啟動(dòng)了2個(gè)線程,但實(shí)際上有3個(gè)線程,因?yàn)檫€有一個(gè)主線程。main()方法的方法體代表主線程的線程執(zhí)行體。
2 Thread-0和Thread-1兩個(gè)線程輸出的i變量不連續(xù)。這是因?yàn)槊看蝿?chuàng)建線程對(duì)象都需要?jiǎng)?chuàng)建一個(gè)FirstThread對(duì)象,所以Thread-0和Thread-1不能共享該實(shí)例變量。
3 使用繼承Thread類(lèi)的方法來(lái)創(chuàng)建線程時(shí),多個(gè)線程之間無(wú)法共享線程類(lèi)的實(shí)例變量。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java進(jìn)程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
關(guān)于IDEA使用jsp可以訪問(wèn)頁(yè)面轉(zhuǎn)換為html彈出頁(yè)面為404的問(wèn)題
這篇文章主要介紹了關(guān)于IDEA使用jsp可以訪問(wèn)頁(yè)面轉(zhuǎn)換為html彈出頁(yè)面為404的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Spring?Cloud實(shí)現(xiàn)灰度發(fā)布的示例代碼
這篇文章主要為大家詳細(xì)介紹了Spring?Cloud實(shí)現(xiàn)灰度發(fā)布的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-09-09springboot+dubbo啟動(dòng)項(xiàng)目時(shí)報(bào)錯(cuò) zookeeper not connect
這篇文章主要介紹了springboot+dubbo項(xiàng)目啟動(dòng)項(xiàng)目時(shí)報(bào)錯(cuò) zookeeper not connected的問(wèn)題,本文給大家定位問(wèn)題及解決方案,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-06-06java使用靜態(tài)關(guān)鍵字實(shí)現(xiàn)單例模式
這篇文章主要為大家詳細(xì)介紹了java使用靜態(tài)關(guān)鍵字實(shí)現(xiàn)單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04詳解spring封裝hbase的代碼實(shí)現(xiàn)
本篇文章主要介紹了詳解spring封裝hbase的代碼實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Spring IOC簡(jiǎn)單理解及創(chuàng)建對(duì)象的方式
這篇文章主要介紹了Spring IOC簡(jiǎn)單理解及創(chuàng)建對(duì)象的方式,本文通過(guò)兩種方式給大家介紹創(chuàng)建對(duì)象的方法,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09