當類擴展Thread時,通過創建類實例來調用run方法。實現類中的Runnable接口
但是對於可運行接口,我們正在創建線程實例並將類實例作爲參數傳遞。之後,我們通過線程實例調用run方法。我可以更多地瞭解這個算法嗎?意思是爲什麼即使在可運行接口的實現類中,我們也不能通過類實例調用run方法。
非常感謝提前。
當類擴展Thread時,通過創建類實例來調用run方法。實現類中的Runnable接口
但是對於可運行接口,我們正在創建線程實例並將類實例作爲參數傳遞。之後,我們通過線程實例調用run方法。我可以更多地瞭解這個算法嗎?意思是爲什麼即使在可運行接口的實現類中,我們也不能通過類實例調用run方法。
非常感謝提前。
從技術上講,您可以調用任何Runnable
實例的run()
方法。它不會在單獨的線程中運行。這就是爲什麼您要將Runnable
實例提供給Thread
的新實例,並在後者上調用start()
。 JVM將啓動一個新線程並在該線程上調用Runnable
實例的run()
方法。
這也在Javadoc of class Thread
中解釋。
謝謝你mthm。我現在可以通過您的評論和以下博客更好地理解。 http://www.xyzws.com/javafaq/what-is-the-difference-between-implementing-runnable-and-extending-thread/29 – Saran
請提供一些代碼來顯示問題 –
不,我們不會調用'thread.run()' –