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

2021-07-10 08:03:55 字數 489 閱讀 9516

原始出處 、作者資訊和本宣告。否則將追究法律責任。

thread的start和run

1) start:

用start方法來啟動執行緒,真正實現了多執行緒執行,這時無需等待run方法體**執行完畢而直接繼續執行下面的**。通過呼叫thread類的start()方法來啟動乙個執行緒,這時此執行緒處於就緒(可執行)狀態,並沒有執行,一旦得到spu時間片,就開始執行run()方法,這裡方法run()稱為執行緒體,它包含了要執行的這個執行緒的內容,run方法執行結束,此執行緒隨即終止。

2) run:

run()方法只是類的乙個普通方法而已,如果直接呼叫run方法,程式中依然只有主線程這乙個執行緒,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的**,這樣就沒有達到寫執行緒的目的。

總結:呼叫start方法方可啟動執行緒,而run方法只是thread的乙個普通方法呼叫,還是在主線程裡執行。

本文出自 「學習筆記」 部落格,請務必保留此出處

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

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

java多執行緒run 和start 的區別

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

多執行緒中run 和start 的區別

實現並啟動執行緒有兩種方法 1 寫乙個類繼承自thread類,重寫run方法。用start方法啟動執行緒 2 寫乙個類實現runnable介面,實現run方法。用new thread runnable target start 方法來啟動 多執行緒原理 相當於玩遊戲機,只有乙個遊戲機 cpu 可是有...