這是一個常見的面試問題:
new一個Thread,該線程進入了新建狀態,調用start()方法,會啟動一個線程並使該線程進入了就緒狀態,當分配到時間片之后,該線程就可以運行了。
start()方法會執行線程的相應准備工作,然后自動執行run()方法的內容,是真正的創建了一個線程去執行任務。
直接運行run()方法,會把run()方法當成一個main線程下的普通方法去執行,並不會創建出一個新的線程去執行run()方法中寫的任務。在main線程中調用run()方法后,要等run方法執行完畢后,才能繼續執行接下來的方法,所以這不是一個真正的多線程工作。