啓動線城時,start與run的區別

start():多線程

        真正實現了多線程運行。它無需等 run()方法執行完畢就能夠執行下面的代碼。經過調用 Thread類 的 start()方法,線程進入就緒(可運行)狀態,此時多個線程開始排隊等待 CPU 分配時間段,線程一直等到 CPU 分配到時間段,也就是說輪到該線程了,這時再經過調用 Thread 類的 run()方法來讓線程運行。run()方法稱爲線程體,它包含了這個線程要執行的內容,等到run()方法運行結束,這個線程就終止了。能夠把 CPU 分配給下一個排隊的線程。併發

run():線程

        run()方法能夠當作是一個普通的方法。若是一開始就調用 run()方法的話,程序仍是要按順序執行,也就是說要等 run()方法執行完畢,才能夠繼續執行下面的代碼。由於程序中就只有主線程這一個線程,程序的執行路徑永遠只有這一條,沒有達到多線程併發的目的。thread

    總結:start啓動線程,而run()方法只是thread的普通方法,仍是在主線程中執行的。程序

相關文章
相關標籤/搜索