2015-08-28 135 views
-3

當類擴展Thread時,通過創建類實例來調用run方法。實現類中的Runnable接口

但是對於可運行接口,我們正在創建線程實例並將類實例作爲參數傳遞。之後,我們通過線程實例調用run方法。我可以更多地瞭解這個算法嗎?意思是爲什麼即使在可運行接口的實現類中,我們也不能通過類實例調用run方法。

非常感謝提前。

+1

請提供一些代碼來顯示問題 –

+2

不,我們不會調用'thread.run()' –

回答

6

從技術上講,您可以調用任何Runnable實例的run()方法。它不會在單獨的線程中運行。這就是爲什麼您要將Runnable實例提供給Thread的新實例,並在後者上調用start()。 JVM將啓動一個新線程並在該線程上調用Runnable實例run()方法。

這也在Javadoc of class Thread中解釋。

+0

謝謝你mthm。我現在可以通過您的評論和以下博客更好地理解。 http://www.xyzws.com/javafaq/what-is-the-difference-between-implementing-runnable-and-extending-thread/29 – Saran