您现在的位置是:首页 > 学无止境 > java > java

java.lang.Runnable接口!

张肖龙2018-10-28java人已围观

大家都知道使用线程的2种方式,一是继承Thread类,二是实现Runnable接口。 

实际上,即使你实现了Runnable接口,最终还是要构造一个Thread类的对象。 

看过Thread源代码发现,其实这个Thread类也实现了Runnable接口,而这个Thread类的run()方法实现是 

if (target != null) {

     target.run(); 

而这个target则是Thread类的构造器都要调用的init()方法所指定的Runnable接口实现类。 

Thread类的几个构造器Thread()、Thread(Runnable target)、Thread(ThreadGroup group, Runnable target)、Thread(String name)、Thread(ThreadGroup group, String name)、Thread(Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name, long stackSize)都调用了private void init(ThreadGroup g, Runnable target, String name, long stackSize)。 

所以如果你实现了Runnable接口并用这个接口实现类构造了一个Thread对象,那么run()方法执行的将是这个target Runnable接口实现类的run()方法,否则,如果直接继承自Thread类,那么这个target为null,所以你只能覆盖掉Thread类的run()方法。

文章评论

站点信息

  • 建站时间:2018年04月1日
  • 网站程序:织梦CMS5.7
  • 文章统计:97条
  • 统计数据站长统计
  • 我的微信:网站制作,互换友链,扫描二维码,加我好友