Thread 与 Runnable 关系 | 学习笔记

简介: 快速学习 Thread 与 Runnable 关系。

开发者学堂课程【Java 高级编程Thread 与 Runnable 关系】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/281


Thread 与 Runnable 关系

内容简介

一、前言

二、Thread 与 Runnable 关系

三、多线程开发

四、内存图

一、前言

经过一系列的分析之后可以发现,在多线程的实现过程之中已经有了两种做法:Thread 类、Runnable 接口,如果从代码的结构本身来讲肯定使用 Runnable 是最方便的,因为其可以避免单继承的局限,同时也可以更好的进行功能的扩充。

但是从结构上也需要来观察 Thread 与 Runnable 的联系,打开 Thread 类的定义:

图片117.png

发现现在 Thread 类也是 Runnable,接口的子类,那么在之前继承 Thread 类的时候实际上覆写的还是 Runnable 接口的 run() 方法,于是此时来观察一下程序的类结构。

图片118.png

二、Thread 与 Runnable 关系

图片119.png

多线程的设计之中,使用了代理设计模式的结构,用户自定义的线程主体只是负责项目核心功能的实现,而所有的辅助实现全部交由 Thread 类来处理。

在进行 Thread 启动多线程的时候调用的是 start() 方法,而后找到的是 run()方法。

但通过 Thread 类的构造方法传递了一个 Runnable 接口对象的时候,那么该接口对象将被 Thread 类中的 target 属性所保存,在 start() 方法执行的时候会调用Thread类中的 run() 方法,而这个 run() 方法去调用 Runnable 接口子类被覆写过的 run() 方法。

多线程开发的本质实质上是在于多个线程可以进行同一资源的抢占,那么 Thread 主要描述的是线程,而资源的描述是通过 Runnable 完成的。

三、多线程开发

图片120.png

范例:利用卖票程序来实现多个线程的资源并发访问

图片121.png

通过内存分析图来分析本程序的执行结构。


四、内存图

图片122.png


            </div>
相关文章
|
Rust 物联网 人机交互
一文看懂蓝牙在物联网中的应用场景
蓝牙作为一项发明于上世纪的近距离无线通信技术,在手机,电脑领域已经有了充分地基础,那么这项技术在物联网领域又会有哪些应用场景呢?
一文看懂蓝牙在物联网中的应用场景
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
《当心!生成式AI正成为网络钓鱼的“帮凶”,这些防范要点你必须知道!》
生成式AI在数字化浪潮中迅速革新各领域,带来便利的同时也催生了隐蔽且危险的网络钓鱼威胁。它通过自然语言处理生成逼真文本,突破语言限制,甚至利用深度伪造技术合成人脸和声音,使攻击更加难以察觉。为应对这一威胁,个人和企业需强化安全意识教育、部署先进安全工具、完善安全策略,并巧用检测工具识别AI生成内容,以筑牢防范之堤,保护信息安全。
249 3
|
8月前
|
缓存 安全 数据可视化
如何让私有化部署不影响用户体验?产品经理必读指南
本文探讨了在数字化产品竞争中,用户体验(UX)与用户界面(UI)设计对产品成功的重要性。合理的UX设计能降低学习成本、提高效率,出色的UI设计则增强视觉吸引力和易用性。同时,随着数据安全需求提升,私有化部署成为企业重要考量。文章从用户导向设计、简化交互、优化性能等方面阐述如何提升用户体验,并结合私有化部署需求,探讨安全与体验的平衡点,确保产品既安全又易用。
|
11月前
|
数据采集 数据可视化 数据挖掘
数据驱动决策:BI工具在数据分析和业务洞察中的应用
【10月更文挑战第28天】在信息爆炸的时代,数据成为企业决策的重要依据。本文综述了商业智能(BI)工具在数据分析和业务洞察中的应用,介绍了数据整合、清洗、可视化及报告生成等功能,并结合实际案例探讨了其价值。BI工具如Tableau、Power BI、QlikView等,通过高效的数据处理和分析,助力企业提升竞争力。
224 5
|
安全 Java
解决多线程间共享变量线程安全问题的大杀器——ThreadLocal(上)
解决多线程间共享变量线程安全问题的大杀器——ThreadLocal
583 0
解决多线程间共享变量线程安全问题的大杀器——ThreadLocal(上)
|
API 开发工具 iOS开发
iOS定位的使用:地理/逆地理编码/判断目标经纬度是否在大陆
iOS定位的使用:地理/逆地理编码/判断目标经纬度是否在大陆
857 0
iOS定位的使用:地理/逆地理编码/判断目标经纬度是否在大陆
|
机器学习/深度学习 城市大脑 人工智能
人狠话不多!阿里成立半导体公司「平头哥」:首款 AI 芯片明年面世
9 月 19 日上午,由杭州市政府与阿里巴巴主办、最具影响力的云计算峰会——「云栖大会」在杭州开幕。大会首日,阿里巴巴发布了城市大脑 2.0 版,宣布成立「平头哥」半导体公司开发 AI 芯片,吸引了众人关注。
1330 0
人狠话不多!阿里成立半导体公司「平头哥」:首款 AI 芯片明年面世
|
机器学习/深度学习 人工智能 达摩院
智能语音未来十年技术趋势预测
“ 对未来十年作出预测,绝对是一件冒险的事情。事实已经无数次证明,科技的发展往往远远超过人们的想象,且近年来各类技术进展的加速度,更有不断加快的趋势。站在一个全新十年的节点上,我们不妨回望过去,再试图展望未来。试着通过这些回望和展望,能够寻觅到技术新十年的蛛丝马迹。回望过去,在语音技术的应用和研究领域发生了许多有意义的标志性事件。”
智能语音未来十年技术趋势预测
|
负载均衡 网络协议 应用服务中间件
LVS负载均衡
lvs负载均衡原理与实践
6995 0