多线程(四)—-继承Thread和实现Runnable的区别

多线程(四)—-继承Thread和实现Runnable的区别

1. 来自于Java当中继承和实现的设计的区别, 继承是单继承,实现可以多实现

当某个类需要升级为线程类的时候,如果这个类已经存在了继承的父类,那么该类不能够继承Thread类,
这是继承的缺陷,但是我们可以实现Runnable接口,所以方式二比方式一更加灵活

2. 继承Thread的好处在于可以直接访问父类Thread的API。

实现Runnable的方式不能够直接调用Thread类的API,但是Thread类提供了一个方法:
static Thread currentThread() 返回对当前正在执行的线程对象的引用。
通过currentThread能够获取到正在执行的线程对象,从而能够任意地访问Thread类的API
所以实现Runnable的方式这个缺点可以弥补

3. 从创建线程的角度发现,继承Thread的方式,每次创建一个线程对象,都会创建一份独有的内部成员

实现Runnable接口的方式,可以实现创建多个线程对象,共享同一个成员,从而实现数据的共享,当多个线程共享同一份数据,同一份代码的时候,使用实现Runnable的方法更加方便
实际开发中基本上都是采用实现Runnable接口的方式开启线程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2335.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Idea配置热部署「建议收藏」

    Idea配置热部署「建议收藏」Idea配置热部署一、概念热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个,一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。二、Idea开启热部署本篇文章主要是介绍Idea…

    2022年5月22日
    60
  • win10自带恶意软件删除工具

    win10自带恶意软件删除工具win+R—>mrt回车点击下一步启动工具待完成后即检测完毕

    2022年6月24日
    36
  • 滑动窗口算法通用思想

    滑动窗口算法通用思想本文详解「滑动窗口」这种高级双指针技巧的算法框架,带你秒杀几道难度较大的子字符串匹配问题:最小覆盖子串找到字符串中所有字母异位词无重复字符的最长子串最后抽象出一个简单的滑动窗口算法框架。LeetCode上至少有9道题目可以用此方法高效解决。但是有几道是VIP题目,有几道题目虽不难但太复杂,所以本文只选择点赞最高,较为经典的,最能够讲明白的三道题来讲解。第一题为了让读者掌握算法模…

    2025年6月27日
    5
  • springWeb实战

    springWeb实战springWeb实战

    2022年4月24日
    42
  • Spring Data JPA 写SQL语句也可以如此简单

    Spring Data JPA 写SQL语句也可以如此简单在使用SpringDataJPA的时候,通常我们只需要继承JpaRepository就能获得大部分常用的增删改查的方法。有时候我们需要自定义一些查询方法,可以写自定义HQL语句像这样/***根据关注者id查找所有记录(查找关注的人的id)**@paramfromUserId*@return*/…

    2022年10月20日
    1
  • linux系统查看网卡是否开启,查看Linux下网卡状态或 是否连接

    linux系统查看网卡是否开启,查看Linux下网卡状态或 是否连接1)通过mii-tool指令[root@localhostroot]#mii-tooleth0:negotiated100baseTx-FD,linkoketh1:nolink或[root@localhostroot]#mii-tool-veth0:negotiated100baseTx-FD,linkokproductinfo:vendor00:50:43,…

    2022年10月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号