Thread類中方法的區(qū)別與聯(lián)系

Thead類中start()方法和run()方法的區(qū)別?

start()用來啟動一個線程,當調(diào)用start()方法時,系統(tǒng)才會開啟一個線程,通過Thead類中start()方法來啟動的線程處于就緒狀態(tài)(可運行狀態(tài)),此時并沒有運行,一旦得到CPU時間片,就自動開始執(zhí)行run()方法。此時不需要等待run()方法執(zhí)行完也可以繼續(xù)執(zhí)行下面的代碼,所以也由此看出run()方法并沒有實現(xiàn)多線程。?

run()方法是在本線程里的,只是線程里的一個函數(shù),而不是多線程的。如果直接調(diào)用run(),其實就相當于是調(diào)用了一個普通函數(shù)而已,直接待用run()方法必須等待run()方法執(zhí)行完畢才能執(zhí)行下面的代碼,所以執(zhí)行路徑還是只有一條,根本就沒有線程的特征,所以在多線程執(zhí)行時要使用start()方法而不是run()方法。

Thead類中sleep()方法和wait()方法的區(qū)別

wait()方法并不是在Thread類中的,而是輸出Object類,也就是說任何對象都可以調(diào)用這個方法。

Object.wait()和Thread。Thread.sleep()方法都可以讓線程等待若干時間。除了wait()可以被喚醒,另外一個主要區(qū)別就是wait()方法會釋放目標對象的鎖,而Thread.sleep()方法不會釋放任何資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,813評論 0 11
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,727評論 18 399
  • Java多線程學(xué)習(xí) [-] 一擴展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,108評論 1 18
  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽閱讀 2,599評論 1 15
  • 周一,辦事日,可休息??梢砸淮笤绲挠袀€瘋婆子已經(jīng)在樓下罵罵咧咧了,影響一天好心情
    懶癌患者晚期閱讀 688評論 0 48

友情鏈接更多精彩內(nèi)容