在java程序中,main()方法本身就是一個線程,即主線程。現自定義了一個線程(如圖2),在main方法中通過jvm調用此線程。main方法作爲主線程會首先入棧,並且此棧中僅包含main方法一個進程,雖然在main方法中調用了自定義線程,但是運行的機制是,在調用自定義線程後,自定義線程也會入棧,但入的不是main方法的棧,而是一個空的棧。此時cpu會進行程序執行,cpu在對多線程執行時,其處理機制是隨機的,這也解釋了爲什麼每次程序運行的結果都不同。
注:每創建一個自定義線程,其入的棧都是一個空棧。