Java学习-070-多线程03:Thread 类和 Runnable 接口的联系和区别
2023-09-11 14:18:59 时间
继承 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虚拟机学习-Java常量池理解与总结(13-2)
- Java多线程之线程同步
- Java 集合
- Java 网络实例二(查看主机指定文件的最后修改时间、Socket实现多线程服务器程序、Socket连接到指定主机、网页抓取)
- 【JAVA】Eclipse中开启java和xml智能提示功能(图文,已解决!)
- java 有哪些常用容器(集合)?
- Java多线程系列—final的各种用法与意义(07)
- Java并发性和多线程介绍目录
- 哈希加密详解和md5、sha1、sha256、Java 工具类
- java字节码生成框架及使用示例
- 给爷肝!Alibaba架构师纯手工打造神仙级“2022版Java面试手册”
- 最新秋招,Java八股文!含答案,JAVA核心知识点最详细版(面试必备)
- java查看CPU使用过高(linux)
- 【Java】怎么回答java垃圾回收机制
- CentOS下OpenJDK设置JAVA_HOME
- 【Java】+多线程
- 第十节:详细讲解一下Java多线程,随机文件
- 深入理解Java虚拟机——Hotpot虚拟机对象
- Java中static、final、static final的区别
- RabbitMQ在java中基础使用
- 都2020年了,这5个java IDE神器你还不知道?
- Java多线程之实现Runnable接口
- Java之多线程(实现Runnable接口)
- Java多线程:用三个线程控制循环输出10次ABC
- Java操作Mongodb 保存/读取java对象到/从mongodb
- 黑马程序员--------Java多线程讲解笔记
- Java多线程中使用synchronized说明
- Java小白入门200例62之java中日期查询常用实例
- Java笔记17:导出可执行jar包
- Java多线程问题总结(上)