java多線程面試問題:為什么我們不能直接調用 run() 方法?


這是一個常見的面試問題:

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

start()方法會執行線程的相應准備工作,然后自動執行run()方法的內容,是真正的創建了一個線程去執行任務。

直接運行run()方法,會把run()方法當成一個main線程下的普通方法去執行,並不會創建出一個新的線程去執行run()方法中寫的任務。在main線程中調用run()方法后,要等run方法執行完畢后,才能繼續執行接下來的方法,所以這不是一個真正的多線程工作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM