1. 程式人生 > >啟動執行緒時,使用start( ) 和run( )的區別?

啟動執行緒時,使用start( ) 和run( )的區別?

1、用 start()方法啟動執行緒,真正實現了多執行緒執行。它無需等 run()方法執行完畢就可以執行下面的程式碼。(因為此時執行緒正處於排隊的空閒,可以做別的事)

通過呼叫 Thread類 的 start()方法,執行緒進入就緒可執行)狀態,此時多個執行緒開始排隊等待 CPU 分配時間段,執行緒一直等到 CPU 分配到時間段,也就是說輪到該執行緒了,這時再通過呼叫 Thread 類的 run()方法來讓執行緒執行。

run()方法稱為執行緒體,它包含了這個執行緒要執行的內容,等到run()方法執行結束,這個執行緒就終止了。可以把 CPU 分配給下一個排隊的執行緒。

2、而 run()方法可以看成是一個普通的方法

。如果一開始就呼叫 run()方法的話,程式還是要按順序執行,也就是說要等 run()方法執行完畢,才可以繼續執行下面的程式碼。因為程式中就只有主執行緒這一個執行緒,程式的執行路徑永遠只有這一條,沒有達到多執行緒併發的目的。