2015-08-28 66 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