這篇文章主要介紹“java線程中start和run的區(qū)別是什么”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“java線程中start和run的區(qū)別是什么”文章能幫助大家解決問題。
目前創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、德化網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
public class Test1 extends Thread {
@Override public void run() {
while (true)
{
System.out.println(Thread.currentThread().getName());
}
}
public static void main(String[] args) {
Test1 test1=new Test1();
test1.run(); //輸出結(jié)果main
test1.start(); //輸出結(jié)果Thread-0
}
}
1.start
start作用是啟動一個新線程。
當用start()開始一個線程后,線程就進入就緒狀態(tài),使線程所代表的虛擬處理機處于可運行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。但是這并不意味著線程就會立即運行。只有當cpu分配時間片時,這個線程獲得時間片時,才開始執(zhí)行run()方法。start()不能被重復調(diào)用,它調(diào)用run()方法.run()方法是你必須重寫的
2.run
run()就和普通的成員方法一樣,可以被重復調(diào)用。
如果直接調(diào)用run方法,并不會啟動新線程!程序中依然只有主線程這一個線程,其程序執(zhí)行路徑還是只有一條,還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼,這樣就沒有達到多線程的目的。
調(diào)用start方法方可啟動線程,而run方法只是thread的一個普通方法調(diào)用,還是在主線程里執(zhí)行。
關(guān)于“java線程中start和run的區(qū)別是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。