千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 為什么我們調用start() 方法時會執行run() 方法?

為什么我們調用start() 方法時會執行run() 方法?

來源:千鋒教育
發布人:wjy
時間: 2022-09-20 16:04:19 1663661059

  為什么我們調用 start() 方法時會執行 run() 方法,為什么我們不能直接調用 run() 方法?

  這是另一個非常經典的 Java 多線程面試問題,而且在面試中會經常被問到。很簡單,但是很多人都會答不上來!

  new 一個 Thread,線程進入了新建狀態。調用 start() 方法,會啟動一個線程并使線程進入了就緒狀態,當分配到時間片后就可以開始運行了。

為什么我們調用start() 方法時會執行run() 方法

  start() 會執行線程的相應準備工作,然后自動執行 run() 方法的內容,這是真正的多線程工作。

  而直接執行 run() 方法,會把 run 方法當成一個 main 線程下的普通方法去執行,并不會在某個線程中執行它,所以這并不是多線程工作。

  總結: 調用 start 方法方可啟動線程并使線程進入就緒狀態,而 run 方法只是 thread 的一個普通方法調用,還是在主線程里執行。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
日本免费无遮挡一区二区三区精品视频 | 日本野外强奷在线播放97 | 亚洲欧美中文字幕图片区 | 五月婷婷丁香综合中文字幕 | 综合欧美日韩一区二区 | 日本在亚洲A在线观看 |