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

2021-08-18 18:47:40 字數 686 閱讀 4747

一、start()方法與run()方法比較

1、start():當前執行緒呼叫start()方法,另乙個執行緒去執行run()方法。start方法不能多次執行。乙個執行緒執行完之後不能重新啟動。

2、run():與普通方法一樣,可以重複呼叫。如果直接呼叫run方法,不會新建執行緒去執行run方法,會在當前執行緒中執行。

二、示例:

public class thread2 extends thread 

public void run()

public static void main(string args)

}

結果:

start method 

run method

main

thread1

三、start、run方法原始碼解析

public synchronized void start()  finally 

} catch (throwable ignore)

}}

run方法原始碼

public void run() 

}

public thread(runnable target)

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

演示圖 結果1 執行緒裡面的run執行 ping 執行緒裡面的run執行 結果二 執行緒裡面的run執行 執行緒裡面的run執行 ping 去掉start方法 package thread public class mian extends thread 結果唯一 執行緒裡面的run執行 ping ...

java多執行緒run 和start 的區別

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

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

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