1) start:
用start方法來啟動執行緒,真正實現了多執行緒執行,這時無需等待run方法體**執行完畢而直接繼續執行下面的**。通過呼叫thread類的start()方法來啟動乙個執行緒,這時此執行緒處於就緒(可執行)狀態,並沒有執行,一旦得到spu時間片,就開始執行run()方法,這裡方法run()稱為執行緒體,它包含了要執行的這個執行緒的內容,run方法執行結束,此執行緒隨即終止。
2) run:
run()方法只是類的乙個普通方法而已,如果直接呼叫run方法,程式中依然只有主線程這乙個執行緒,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的**,這樣就沒有達到寫執行緒的目的。
總結:呼叫start方法方可啟動執行緒,而run方法只是thread的乙個普通方法呼叫,還是在主線程裡執行。
多執行緒之run()和start()比較
在比較執行緒的run方法和start方法前,我們先來看一下currentthread 方法 currentthread 能返回執行當前 的執行緒,下面開始正式進入run和start的比較 一 start 方法 和start 案例都一樣,只是把主程式的demo.start 換成demo.run 1 直...
多執行緒中run 和start 的區別
實現並啟動執行緒有兩種方法 1 寫乙個類繼承自thread類,重寫run方法。用start方法啟動執行緒 2 寫乙個類實現runnable介面,實現run方法。用new thread runnable target start 方法來啟動 多執行緒原理 相當於玩遊戲機,只有乙個遊戲機 cpu 可是有...
java多執行緒run 和start 的區別
當你啟動執行緒,使用start 系統會把run 方法當成執行緒執行體來處理,這是正常的,也是正確的情況。但是,當你啟動執行緒時,呼叫run 方法,系統run 方法會立即執行,但是這時候系統會把run 方法當成普通的方法,執行緒物件也當成乙個普通物件。不理解我上面說的話?那我就在解釋一下。第乙個問題,...