Thread的start 與run 的區別

2021-04-23 20:43:05 字數 372 閱讀 7763

啟動乙個執行緒是呼叫start()方法。使執行緒是處於就緒狀態(可執行狀態), 並沒有執行。可以由jvm排程並執行,並不代表執行緒會立即執行。然後呼叫方法run()來完成其執行操作,run()方法稱為執行緒體,它包含了要執行的這個執行緒的內容,run()方法執行結束,此執行緒停止, 而cpu再執行其它執行緒。

而如果直接用run()方法,這只是呼叫乙個方法而已,程式中依然只有主線程--這乙個執行緒,其程式執行路徑還是只有一條,這樣就沒有達到寫執行緒的目的。

start()可以設定優先順序,而run()不能。

run()是虛函式,需要你自己在派生類中來實現的,是你的執行緒要具體的執行的過程內容。

run()用來過載定義自己的執行緒函式,strat()用來在主程式中執行run(),啟動執行緒。

Thread的start 和run 區別

首先,之所以出現執行緒,就是為了更好的利用cpu,讓她更加 精明 的幹活。通過呼叫thread類的start 方法來啟動乙個執行緒,這時此執行緒是處於就緒狀態,並沒有執行。然後通過此thread類呼叫方法run 來完成其執行操作的,這裡方法run 稱為執行緒體,它包含了要執行的這個執行緒的內容,ru...

認識Thread的start和run

認識thread的start和run 1 start 用 start方法來啟動執行緒,真正實現了多執行緒執行,color red 這時無需等待run方法體 執行完畢而直接繼續執行下面的 color 通過呼叫thread類的 start 方法來啟動乙個執行緒,color red 這時此執行緒處於就緒 ...

Thread的start和run的區別

最近看到乙個題目,如下 public static void main string args t.run system.out.println ping static void pong 問,結果會輸出什麼?我執行了很多次,結果都是pong ping。後來終於發現了關鍵點所在,執行緒物件t,呼叫的...