当类扩展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()' –