java thread start()和run()方法簡析
更新時間:2012年11月21日 15:35:16 作者:
本文以java中thread的start()和run()的區(qū)別做詳細(xì)介紹, 需要了解跟多的朋友可以參考下
1.start()方法來啟動線程,真正實(shí)現(xiàn)了多線程運(yùn)行,這時無需等待run方法體代碼執(zhí)行完畢而直接繼續(xù)執(zhí)行下面的代碼:
通過調(diào)用Thread類的start()方法來啟動一個線程,
這時此線程是處于就緒狀態(tài),
并沒有運(yùn)行。
然后通過此Thread類調(diào)用方法run()來完成其運(yùn)行操作的,
這里方法run()稱為線程體,
它包含了要執(zhí)行的這個線程的內(nèi)容,
Run方法運(yùn)行結(jié)束,
此線程終止,
而CPU再運(yùn)行其它線程,
2.run()方法當(dāng)作普通方法的方式調(diào)用,程序還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼:
而如果直接用Run方法,
這只是調(diào)用一個方法而已,
程序中依然只有主線程--這一個線程,
其程序執(zhí)行路徑還是只有一條,
這樣就沒有達(dá)到寫線程的目的。
通過調(diào)用Thread類的start()方法來啟動一個線程,
這時此線程是處于就緒狀態(tài),
并沒有運(yùn)行。
然后通過此Thread類調(diào)用方法run()來完成其運(yùn)行操作的,
這里方法run()稱為線程體,
它包含了要執(zhí)行的這個線程的內(nèi)容,
Run方法運(yùn)行結(jié)束,
此線程終止,
而CPU再運(yùn)行其它線程,
2.run()方法當(dāng)作普通方法的方式調(diào)用,程序還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼:
而如果直接用Run方法,
這只是調(diào)用一個方法而已,
程序中依然只有主線程--這一個線程,
其程序執(zhí)行路徑還是只有一條,
這樣就沒有達(dá)到寫線程的目的。
相關(guān)文章
Java規(guī)則引擎easy-rules詳細(xì)介紹
本文主要介紹了Java規(guī)則引擎easy-rules詳細(xì)介紹,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
舉例講解Java設(shè)計(jì)模式中的對象池模式編程
這篇文章主要介紹了Java設(shè)計(jì)模式中的對象池模式編程示例分享,對象池模式經(jīng)常在多線程開發(fā)時被用到,需要的朋友可以參考下2016-02-02
java普通項(xiàng)目讀取不到resources目錄下資源文件的解決辦法
這篇文章主要給大家介紹了關(guān)于java普通項(xiàng)目讀取不到resources目錄下資源文件的解決辦法,Web項(xiàng)目中應(yīng)該經(jīng)常有這樣的需求,在maven項(xiàng)目的resources目錄下放一些文件,比如一些配置文件,資源文件等,需要的朋友可以參考下2023-09-09
spring boot自定義配置時在yml文件輸入有提示問題及解決方案
自定義一個配置類,然后在yml文件具體配置值時,一般不會有提示,今天小編給大家分享spring boot自定義配置時在yml文件輸入有提示問題,感興趣的朋友一起看看吧2023-10-10
SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐
本文主要介紹了SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐,將通過自定義算法來實(shí)現(xiàn)定制化的分庫分表來擴(kuò)展相應(yīng)業(yè)務(wù),感興趣的可以了解一下2021-11-11
SpringBoot實(shí)現(xiàn)異步消息處理的代碼示例
在現(xiàn)代應(yīng)用程序中,異步消息處理是一項(xiàng)至關(guān)重要的任務(wù)。它可以提高應(yīng)用程序的性能、可伸縮性和可靠性,同時也可以提供更好的用戶體驗(yàn),本文將介紹如何使用Spring Boot實(shí)現(xiàn)異步消息處理,并提供相應(yīng)的代碼示例2023-06-06

