java多執行緒start方法與run方法分析

2021-08-07 14:29:16 字數 1267 閱讀 1228

演示圖

結果1

執行緒裡面的run執行

ping

執行緒裡面的run執行

結果二

執行緒裡面的run執行

執行緒裡面的run執行

ping

去掉start方法

package

thread;

public

class mian extends

thread}

結果唯一

執行緒裡面的run執行

ping

去掉run方法

package

thread;

public

class mian extends

thread}

結果一

ping

執行緒裡面的run執行

結果二(由於時間太短,無法出現另一種情況,我們給主函式加上sleep看看,主函式也是乙個執行緒)

package

thread;

public

class mian extends

thread

catch

(exception e)

system.out.println("ping");

}}

結果二

執行緒裡面的run執行

ping

總結:start()是開啟乙個執行緒到就緒狀態,等待獲取cpu時間,然後獲取之後執行內部run方法,然後銷毀。

開啟的執行緒與主線程是兩個互不干擾的執行緒,所以輸出是先後,根據獲得cpu時間的順序執行的。

直接呼叫run()方法,是作為乙個類的乙個普通方法使用的

,所以呼叫先後根據使用順序執行。

Java多執行緒run方法與start方法比較

一 start 方法與run 方法比較 1 start 當前執行緒呼叫start 方法,另乙個執行緒去執行run 方法。start方法不能多次執行。乙個執行緒執行完之後不能重新啟動。2 run 與普通方法一樣,可以重複呼叫。如果直接呼叫run方法,不會新建執行緒去執行run方法,會在當前執行緒中執行...

java多執行緒run 和start 的區別

當你啟動執行緒,使用start 系統會把run 方法當成執行緒執行體來處理,這是正常的,也是正確的情況。但是,當你啟動執行緒時,呼叫run 方法,系統run 方法會立即執行,但是這時候系統會把run 方法當成普通的方法,執行緒物件也當成乙個普通物件。不理解我上面說的話?那我就在解釋一下。第乙個問題,...

Java多執行緒中run和start的區別

thread的start和run 1 start 用start方法來啟動執行緒,真正實現了多執行緒執行,這時無需等待run方法體 執行完畢而直接繼續執行下面的 通過呼叫thread類的start 方法來啟動乙個執行緒,這時此執行緒處於就緒 可執行 狀態,並沒有執行,一旦得到spu時間片,就開始執行r...