2009-08-12 199 views

回答

10

它會運行在當前線程。你會這樣不會啓動新線程

但是,在你的例子中,這並不重要,因爲你給了新的線程沒有代碼來運行。

+0

什麼是當前線程在這裏? – Johanna 2009-08-12 05:31:33

+1

執行main()方法的主線程。 – 2009-08-12 05:40:43

3

運行main()代碼的線程是當前線程。創建一個Thread對象並調用其方法之一(start()除外)就像調用類IntegerString的方法 - 它不會創建新的實際線程。

在您的代碼示例中,只有當run()方法完成運行時,主方法的執行纔會繼續。這意味着如果run()方法有一個無限循環(假設它正在等待傳入請求),那麼即使在調用run()之後有更多的代碼行,main()方法也不會繼續運行。

調用aThread.start()創建一個新的實際螺紋(由對象aThread表示),使得新的線程調用run()方法,並返回原來的線程的執行,以在main()下一行。這意味着新線程可以永久運行,但不會阻止main()代碼創建更多線程或執行其他任務。

3

它會像你調用普通方法一樣運行。因此該方法將在調用該方法的同一個線程中運行。

0

如果您調用Thread類的start方法,start-method將在一段時間後返回,但在併發中將運行run-method的內容。如果您直接調用run-method,那麼將在方法完成後執行並返回給調用方 - 與每個常規方法調用一樣。

1

它會在當前線程中運行而不是在新線程所以如果你自己調用run方法,它是沒有意義的。因爲它不創建一個新的線程。

相關問題