線程啟動過程:
在線程的線程對象上調用start()方法,而不是run()或其他方法。
在調用start()方法之前:線程處於新的狀態,這意味著有壹個線程對象,但是還沒有真正的線程。
調用start()方法後:發生了壹系列復雜的事情。
啟動新的執行線程(使用新的調用堆棧);
線程從新狀態轉換到可運行狀態;
當線程有機會執行時,它的目標run()方法將會運行。
註意:Java的run()方法沒有什麽特別的。和main()方法壹樣,只是新線程知道被調用方法的名稱(和簽名)。因此,在Runnable或Thread上調用run方法是合法的。但不啟動新線程。