码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习-070-多线程03:Thread 类和 Runnable 接口的联系和区别

时间:2021-05-24 05:04:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:查看   mamicode   nal   http   程序   源码   初始化   必须   code   

继承 Thread 类和实现 Runnale 接口,都可以实现多线程,那么二者有什么联系和区别呢?

通过查看 Thread 类定义,其也是实现了 Runnable 接口,如下源码截图所示:

技术图片

  

查看 Thread.init 初始化方法,将初始化中的 Runnable 赋值给了 Thread 类的 private Runnable target;

技术图片

  

并且 Thread.run() 方法并未完全实现 Runnable.run() 方法,实际上执行的依然是 Runnable 的 run() 方法。

技术图片

  

因而,在 Thread.run() 方法实际调用的是 Runnable.run() 方法,也就是说此方法由 Runnable 子类完成的,所以如果要通过继承 Thread 类实现多线程,则必须覆写 Thread.run() 方法。

 

Java 程序里面对于继承永远都是存在有单继承局限的,因而通过继承 Thread 类和实现 Runnable 接口实现多线程二者是有区别的。通过继承 Thread 类实现多线程,则不适合用于多个线程间共享资源;实现 Runnable 接口方式实现多线程,则可方便的实现线程间资源的共享。

 

Java学习-070-多线程03:Thread 类和 Runnable 接口的联系和区别

标签:查看   mamicode   nal   http   程序   源码   初始化   必须   code   

原文地址:https://www.cnblogs.com/fengpingfan/p/14701213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!