java thread start()和run()方法簡析
更新時間:2012年11月21日 15:35:16 作者:
本文以java中thread的start()和run()的區(qū)別做詳細(xì)介紹, 需要了解跟多的朋友可以參考下
1.start()方法來啟動線程,真正實現(xiàn)了多線程運行,這時無需等待run方法體代碼執(zhí)行完畢而直接繼續(xù)執(zhí)行下面的代碼:
通過調(diào)用Thread類的start()方法來啟動一個線程,
這時此線程是處于就緒狀態(tài),
并沒有運行。
然后通過此Thread類調(diào)用方法run()來完成其運行操作的,
這里方法run()稱為線程體,
它包含了要執(zhí)行的這個線程的內(nèi)容,
Run方法運行結(jié)束,
此線程終止,
而CPU再運行其它線程,
2.run()方法當(dāng)作普通方法的方式調(diào)用,程序還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼:
而如果直接用Run方法,
這只是調(diào)用一個方法而已,
程序中依然只有主線程--這一個線程,
其程序執(zhí)行路徑還是只有一條,
這樣就沒有達(dá)到寫線程的目的。
通過調(diào)用Thread類的start()方法來啟動一個線程,
這時此線程是處于就緒狀態(tài),
并沒有運行。
然后通過此Thread類調(diào)用方法run()來完成其運行操作的,
這里方法run()稱為線程體,
它包含了要執(zhí)行的這個線程的內(nèi)容,
Run方法運行結(jié)束,
此線程終止,
而CPU再運行其它線程,
2.run()方法當(dāng)作普通方法的方式調(diào)用,程序還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼:
而如果直接用Run方法,
這只是調(diào)用一個方法而已,
程序中依然只有主線程--這一個線程,
其程序執(zhí)行路徑還是只有一條,
這樣就沒有達(dá)到寫線程的目的。
相關(guān)文章
Spring擴(kuò)展之基于HandlerMapping實現(xiàn)接口灰度發(fā)布實例
這篇文章主要介紹了Spring擴(kuò)展之基于HandlerMapping實現(xiàn)接口灰度發(fā)布實例,灰度發(fā)布是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式,灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時候就可以發(fā)現(xiàn)、調(diào)整問題,以保證其影響度,需要的朋友可以參考下2023-08-08
java線程并發(fā)cyclicbarrier類使用示例
CyclicBarrier類似于CountDownLatch也是個計數(shù)器,不同的是CyclicBarrier數(shù)的是調(diào)用了CyclicBarrier.await()進(jìn)入等待的線程數(shù),當(dāng)線程數(shù)達(dá)到了CyclicBarrier初始時規(guī)定的數(shù)目時,所有進(jìn)入等待狀態(tài)的線程被喚醒并繼續(xù),下面使用示例學(xué)習(xí)他的使用方法2014-01-01
springIOC的使用流程及spring中使用類型轉(zhuǎn)換器的方式
Spring IOC是Spring框架的核心原理之一,它是一種軟件設(shè)計模式,用于管理應(yīng)用程序中的對象依賴關(guān)系,這篇文章主要介紹了springIOC的使用流程以及spring中如何使用類型轉(zhuǎn)換器,需要的朋友可以參考下2023-06-06
CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html
這篇文章主要介紹了CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html,這個技巧我們做任何網(wǎng)站都可以用到,而且非常好用。,需要的朋友可以參考下2019-06-06

