【java-面試題】start和run的區別
在run方法內部,只是單純的描述了該線程要執行的內容。run方法是線程的入口。
在start方法內部,會調用到系統api,從而在系統內核中創建出線程,創建線程后,再自動調用run方法。
在代碼中,我們通過重寫run方法創建一個線程對象,但創建一個線程對象并不意味著線程開始執行了。而調用start方法后,才真正在操作系統底層創建出一個線程,同時start方法內部還會自動調用run方法,這才意味著創建了一個線程并讓它開始獨立執行。
所以如果我們在編寫代碼的時候,調用run方法,程序依然會執行run方法里面的命令,但是該命令是被當下線程執行的,這就不是并發編程了。多線程編程是為了實現并發編程,提高計算機處理問題的效率存在的。