首頁  >  文章  >  Java  >  java線程中start和run的差別是什麼

java線程中start和run的差別是什麼

WBOY
WBOY轉載
2023-04-20 12:37:181741瀏覽

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中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除