java 父类需要实现runnable吗,JavaSE 学习参考:Runnable接口实现线程任务

e4de20703f0e85c4bf5c488a03e73912.png

前面已经提到过通过继承Thread类创建线程,将线程的任务定义在重写的run方法即可。但是由于Java是单继承机制,假如某个业务类已经继承了一个父类同时有希望作为一个线程类,这样就无法再继承Thread类了,不过Thread类在设计时提供了一个插件机制来让我们通过插件的方式来实现线程。这个所谓的插件机制就是通过向外公开接口,来实现线程功能。先了解一下Thread类源码:

public

class Thread implements Runnable {

private Runnable target;

public Thread(Runnable target) {

this.target= target;

}

public void run() {

if (target != null) {

target.run();

}

}

}

我们可以看到Thread提供了Runnable接口作为参数的构造方法。Runnable接口只定义了一个抽象方法run。该构造方法将参数的Runnable接口的实现类对象传递自身的Runnable接口引用。再看run方法,判定引用的Runnable接口是否存在,若不存在则线程空操作,实现上这种是继承的子类需要重写。若判定引用的Runnable接口存在,则按照Runnable接口实现类的run方法去执行线程,是这直接使用Thread类来创建对象,前置条件Runnable接口实现类作为构造方法参数。

由此我们可以得这样的结论:业务类也要实现线程功能,只需要实现Runnable接口,将线程的任务定义在run方法,然后将业务类对象作为参数使用Thread(Runnable)构造方法来创建Thread对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值