public class Test1 extends Thread {
@Override public void run() {
while (true)
{ #
##. println(Thread.currentThread().getName()); #} } public static void main(String[] args) { arg Test1 test1=new Test1(); test1.run(); //輸出結果main test1.start(); //輸出結果Thread-0。 }}
1.start
start作用是啟動一個新執行緒。 當用start()開始一個執行緒後,執行緒就進入就緒狀態,使執行緒所代表的虛擬處理機處於可運行狀態,這表示它可以由JVM調度並執行。但這並不意味著執行緒就會立即運行。只有當cpu分配時間片時,這個執行緒獲得時間片時,才開始執行run()方法。 start()不能被重複調用,它調用run()方法.run()方法是你必須重寫的#2.run
######run()就和普通的成員方法一樣,可以重複呼叫。 ######如果直接呼叫run方法,並不會啟動新執行緒!程式中依然只有主線程這一線程,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的程式碼,這樣就沒有達到多線程的目的。 ######呼叫start方法方可啟動線程,而run方法只是thread的一個普通方法調用,還是在主線程裡執行。 ###以上是java線程中start和run的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!