2013-03-12 61 views
0

很抱歉,如果它的重複,(請告訴我去,如果重複正確的位置)線程的run()函數調用

在線程機制,

run()函數沒有直接調用 - >因爲如果稱它爲直接函數調用。因此建議打電話給開始。

但是,如果我們可以運行,會發生什麼?它調用運行()和.run相同

如果我們調用.run()多次說(3-4次),它會像一個正常的函數調用。

回答

3

如果您直接撥打run(),它將在同一個線程上運行。

+0

同意,但多次調用它將只是一個正常的函數調用在同一個線程,一次又一次? – Raa 2013-03-12 05:03:13

+0

是的。當然,它們不會被同時執行。 – 2013-03-12 13:18:43

0

如果您直接調用run(),它與創建常規方法調用完全沒有區別。

0

只要不打算啓動新線程,調用run()就是完全有效的。

事實上,這是線程池和調度程序如何執行它。預先產生的線程調用ThreadRunnable中的run()而不是要求被調用者實現新接口。

實際上,調用run()將在同一個線程中執行其代碼。我無法想象任何多線程語義,如果在單線程內執行,將會中斷。