Thread的 start() 和 run()

start():

我們先來看看API中對於該方法的介紹:
使該線程開始執行;Java 虛擬機調用該線程的 run 方法。
結果是兩個線程併發地運行;當前線程(從調用返回給 start 方法)和另一個線程(執行其 run 方法)。
多次啓動一個線程是非法的。特別是當線程已經結束執行後,不能再重新啓動。

run():

我們還是先看看API中對該方法的介紹:
如果該線程是使用獨立的 Runnable 運行對象構造的,則調用該 Runnable 對象的 run 方法;否則,該方法不執行任何操作並返回。
Thread 的子類應該重寫該方法。

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

總結:

調用start方法方可啓動線程,而run方法只是thread的一個普通方法調用,還是在主線程裏執行。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章