Thread vs Runnable in Java

来源:互联网 发布:网络言论自由辩论 编辑:程序博客网 时间:2024/06/12 21:02

在Java中,可以通过继承Thread类或实现Runnable接口(暂时不提Callable接口)实现一个线程,那具体这两者之间有什么区别呢,什么时候该继承Thread类,什么时候该实现Runnable接口?

Thread和Runnable的不同

  1. Java不支持多继承,这就意味着你继承Thread类后就不能继承其他类了。
  2. 在面向对象编程中,继承一个类往往意味着对父类进行了修改或者扩展。如果我们没有对Thread类有任何修改或扩展,建议继承Thread。
  3. Runnable接口表示一个可以被Thread或Executors执行的Task,如果是逻辑分离的任务,建议实现Runnable接口。
  4. 逻辑分离的Runnable接口Task意味着我们可以复用这个Task,并且可以使用多种多样的方式去执行,此时建议使用Runnable接口。
  5. 作为一个Task来说,只需要实现一个Runnable接口就能做的事,继承Thread类的所有方法就有点画蛇添足了。

基于以上几点,个人更建议使用Runnable或Callable接口去实现一个线程。

原文链接:Difference between Thread vs Runnable interface in Java

0 0
原创粉丝点击