Java使用Thread創(chuàng)建多線程并啟動(dòng)操作示例
本文實(shí)例講述了Java使用Thread創(chuàng)建多線程并啟動(dòng)操作。分享給大家供大家參考,具體如下:
按照教程實(shí)現(xiàn)了一個(gè)單線程的創(chuàng)建,但是單線程的創(chuàng)建于啟動(dòng)并不是很有實(shí)用價(jià)值的。畢竟直接在main方法中放著相關(guān)的執(zhí)行操作本身也就是一種單線程的實(shí)現(xiàn)。接下來(lái)在之前用過(guò)的代碼基礎(chǔ)上稍作修改,形成如下代碼:
class ThreadDemo extends Thread { ThreadDemo(){}; ThreadDemo(String szName) { super(szName); } public void run() { int i = 0; for(i = 0;i < 10;i++) { System.out.println("run" + (i + 1) + " times"); } } public static void main(String[] args) { ThreadDemo demo1 = new ThreadDemo(); ThreadDemo demo2 = new ThreadDemo(); ThreadDemo demo3 = new ThreadDemo(); demo1.start(); demo2.start(); demo3.start(); } }
代碼編譯運(yùn)行結(jié)果如下;
E:\WorkSpace\02_技術(shù)實(shí)踐\01_編程語(yǔ)言\05_Java\02_Java從入門(mén)到精通\thread_demo>javac ThreadDemo.java
E:\WorkSpace\02_技術(shù)實(shí)踐\01_編程語(yǔ)言\05_Java\02_Java從入門(mén)到精通\thread_demo>java ThreadDemo
run 1 times
run 2 times
run 3 times
run 4 times
run 5 times
run 6 times
run 7 times
run 1 times
run 2 times
run 1 times
run 3 times
run 8 times
run 4 times
run 2 times
run 5 times
run 9 times
run 6 times
run 7 times
run 8 times
run 3 times
run 9 times
run 10 times
run 10 times
run 4 times
run 5 times
run 6 times
run 7 times
run 8 times
run 9 times
run 10 times
從上面的結(jié)果中實(shí)際上看到了一定的亂序,看起來(lái)三個(gè)任務(wù)的執(zhí)行順序不是按順序來(lái)的。其實(shí),這正是創(chuàng)建出來(lái)的三個(gè)線程出現(xiàn)了執(zhí)行上的競(jìng)爭(zhēng)而造成的結(jié)果。
之前我寫(xiě)程序的時(shí)候確實(shí)是感覺(jué)傻了一點(diǎn),雖說(shuō)這么久以來(lái)也好歹完成了任務(wù),但是我之前所實(shí)現(xiàn)的都是單線程的工作。一個(gè)任務(wù)從頭到尾一路執(zhí)行下來(lái),好在現(xiàn)在的電腦的執(zhí)行速度都還不壞,否則我這中間可得出現(xiàn)多少執(zhí)行時(shí)間上的浪費(fèi)??!
雖說(shuō)現(xiàn)在是在學(xué)Java,后期的Python等支持多線程的語(yǔ)言中盡量也該把這個(gè)功能利用起來(lái)。盡可能的挖掘一下CPU的潛力還是一件很有意思的事情的。
更多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)文章
Java棋類(lèi)游戲?qū)嵺`之單機(jī)版五子棋
這篇文章主要為大家詳細(xì)介紹了Java棋類(lèi)游戲中的五子棋實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02Springboot+MybatisPlus+Oracle實(shí)現(xiàn)主鍵自增的示例代碼
這篇文章主要介紹了Springboot+MybatisPlus+Oracle實(shí)現(xiàn)主鍵自增的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Java開(kāi)發(fā)常見(jiàn)異常及解決辦法詳解
這篇文章主要介紹了java程序常見(jiàn)異常及處理匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09spring中自動(dòng)注入注解的實(shí)現(xiàn)方式
在Spring框架中,AutowiredAnnotationBeanPostProcessor負(fù)責(zé)處理@Autowired和@Value注解,實(shí)現(xiàn)依賴(lài)注入,首先通過(guò)TypeMappedAnnotations獲取注解,并根據(jù)注解屬性構(gòu)建InjectionMetadata,存入緩存2024-09-09深入了解Java SpringBoot自動(dòng)裝配原理
在使用springboot時(shí),很多配置我們都沒(méi)有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動(dòng)裝配。本文將詳細(xì)為大家講解SpringBoot的自動(dòng)裝配原理,需要的可以參考一下2022-03-03idea中創(chuàng)建多module的maven工程的方法
這篇文章主要介紹了idea中創(chuàng)建多module的maven工程的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10