新聞中心
這篇文章主要介紹“java線程中start和run的區(qū)別是什么”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“java線程中start和run的區(qū)別是什么”文章能幫助大家解決問題。
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作用是啟動一個新線程。
當(dāng)用start()開始一個線程后,線程就進(jìn)入就緒狀態(tài),使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。但是這并不意味著線程就會立即運(yùn)行。只有當(dāng)cpu分配時間片時,這個線程獲得時間片時,才開始執(zhí)行run()方法。start()不能被重復(fù)調(diào)用,它調(diào)用run()方法.run()方法是你必須重寫的
2.run
run()就和普通的成員方法一樣,可以被重復(fù)調(diào)用。
如果直接調(diào)用run方法,并不會啟動新線程!程序中依然只有主線程這一個線程,其程序執(zhí)行路徑還是只有一條,還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼,這樣就沒有達(dá)到多線程的目的。
調(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è)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。
當(dāng)前文章:java線程中start和run的區(qū)別是什么-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/hjogs.html