很抱歉,如果它的重複,(請告訴我去,如果重複正確的位置)線程的run()函數調用
在線程機制,
run()函數沒有直接調用 - >因爲如果稱它爲直接函數調用。因此建議打電話給開始。
但是,如果我們可以運行,會發生什麼?它調用運行()和.run相同
如果我們調用.run()多次說(3-4次),它會像一個正常的函數調用。
很抱歉,如果它的重複,(請告訴我去,如果重複正確的位置)線程的run()函數調用
在線程機制,
run()函數沒有直接調用 - >因爲如果稱它爲直接函數調用。因此建議打電話給開始。
但是,如果我們可以運行,會發生什麼?它調用運行()和.run相同
如果我們調用.run()多次說(3-4次),它會像一個正常的函數調用。
如果您直接撥打run()
,它將在同一個線程上運行。
如果您直接調用run()
,它與創建常規方法調用完全沒有區別。
只要不打算啓動新線程,調用run()
就是完全有效的。
事實上,這是線程池和調度程序如何執行它。預先產生的線程調用Thread
或Runnable
中的run()
而不是要求被調用者實現新接口。
實際上,調用run()將在同一個線程中執行其代碼。我無法想象任何多線程語義,如果在單線程內執行,將會中斷。
同意,但多次調用它將只是一個正常的函數調用在同一個線程,一次又一次? – Raa 2013-03-12 05:03:13
是的。當然,它們不會被同時執行。 – 2013-03-12 13:18:43