java八股文面试[多线程]——有几种创建线程的方式

news2024/9/23 7:27:06

 

 

 this逃逸问题:构造器中启动线程。

 

面试题:

用Thread和Runable创建线程的差别

一、Runnable和Thread的区别

继承性:Thread是一个类,因此如果继承Thread类,子类就不能再继承其他的类了,而实现Runnable接口可以继承其他类,这样可以避免Java中单继承带来的限制。

接口性:Runnable是一个接口,需要实现run()方法,而Thread是一个类,可以直接创建对象,无需实现接口。

代码耦合:使用Runnable可以将任务的代码线程的代码解耦,从而可以更加灵活地组织代码。

线程状态:创建Thread对象后,可以直接调用start()方法启动线程,而使用Runnable需要先创建Thread对象,然后将Runnable对象传递给Thread对象,最后调用start()方法启动线程。

资源共享:

Thread线程是独立的不共享资源,Runnable是资源共享;

Runnable 表示一个线程的顶级接口,Thread 类其实是实现了 Runnable 这个接口,我们在使用的时候都需要实现 run 方法

明确一点:Runnable 和 Thread 本质上是没有区别的。

Runnable就只有一个方法:

二、使用哪种方式更适合不同的场景

继承Thread类的方式适用于需要继承自定义线程类的情况。如果需要对线程类进行自定义的扩展,例如重写Thread类的方法来改变线程的行为,那么继承Thread类就是一个不错的选择。

实现Runnable接口的方式更加灵活和可扩展,因为它可以避免Java中单继承的限制,也可以让任务的代码和线程的代码解耦。如果任务的代码比较复杂,或者需要在多个线程中复用,那么使用实现Runnable接口的方式会更加合适。

知识来源:

【2023年面试】创建线程有哪些方式_哔哩哔哩_bilibili

Runnable 和 Thread 有什么区别_thread和runnable区别_猹里。的博客-CSDN博客

https://www.cnblogs.com/winton-nfs/p/14172040.html

每日五问(java)_thread和runnable区别_Nicholas_giao的博客-CSDN博客

Thread 和 Runnable 的区别_thread和runnable区别_逍遥ovo的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/931373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaFX 加载 fxml 文件

JavaFX 加载 fxml 文件主要有两种方式,第一种方式通过 FXMLLoader 类直接加载 fxml 文件,简单直接,但是有些控件目前还不知道该如何获取,所以只能显示,目前无法处理。第二种方式较为复杂,但是可以使用与 fx…

mysql 逻辑架构

连接层 客户端和服务器建立连接,客户端发送sql 到 服务器端 服务层 引擎层 查看现有的 存储引擎 show engines; 存储层

电子器件系列56:ltc1799(定时器)

定时IC芯片是一种具有定时功能的集成电路,常用于计时、时钟、频率合成等应用。以下是一些常见的定时IC芯片: 1. 555定时器芯片:最常见的定时IC芯片之一,可用于产生各种定时信号和脉冲。 2. 556双555定时器芯片:由两个5…

OLED透明屏曲面技术:创新突破引领显示行业未来

OLED透明屏曲面技术作为一项重要的显示技术创新,正在成为显示行业的焦点,其引人注目的优势和广泛应用领域使其备受关注。 本文将详细介绍OLED透明屏曲面技术的优势、应用领域以及市场前景,同时展望其未来的发展趋势,以期带给读者…

数据工厂调研及结果展示

数据工厂 一、背景 在开发自测、测试迭代测试、产品验收的过程中,都需要各种各样的前置数据,大致分为如下几类: 账号(实名、权益等级、注册等) 货源(优货、急走、相似、一手、普通货源等) …

Linux下Qt配置opencv环境(ippicv,ffmpeg手动配置)

1.opencv配置使用问题 opencv在cmake的时候有两个问题,ippicv长时间卡住下载失败,ffmpeg不会卡住但是也不会配置成功。所以这两个包只能手动下载安装。 ippicv是什么 OpenCV设计用于高效的计算,十分强调实时应用的开发。它由C语言编写并进行了…

腾讯云服务器地域有什么区别?怎么选择合适?

腾讯云服务器地域有什么区别?怎么选择比较好?地域选择就近原则,距离地域越近网络延迟越低,速度越快。关于地域的选择还有很多因素,地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域价格因素…

聚观早报 | 青瓷游戏上半年营收3.34亿元;如祺出行冲击IPO

【聚观365】8月26日消息 青瓷游戏上半年营收3.34亿元 如祺出行冲击IPO 索尼互动娱乐将收购Audeze 昆仑万维上半年净利润3.6亿元 T-Mobile计划在未来五周内裁员5000人 青瓷游戏上半年营收3.34亿元 青瓷游戏发布截至2023年6月30日止的中期业绩,财报显示&#xf…

聚类分析 | MATLAB实现基于DBSCAD密度聚类算法可视化

聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化 目录 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于DBSCAD密度聚类算法可视化,MATLAB程序。 使用带有KD树加速的dbscan_with_kdtree函数进行…

AI绘画 | Discord的最强7款AI插件整理汇总

hi,同学们,我是赤辰,本周起,我们将开启AI工具教程篇的栏目,每天会更新1篇AI教程或推荐实用AI工具,文章底部准备了粉丝福利,看完可以领取! 今天给大家整理了Discord的最强7款AI插件汇…

ai课堂行为分析检测评估

ai课堂行为分析检测评估系统通过yolo网络模型算法,ai课堂行为分析检测评估算法利用摄像头采集学生的图像,视线跟踪技术的智能教学系统由情感模型、教师模型、学生模型和课程模型四个模型组成。用户端的视线及表情信息通过摄像头采集并传递到情感模型情感…

日常踩坑记录

本篇文章主要介绍一下最近的开发中用到的些小问题。问题不大,但有些小细节,记录一下,有遇到的朋友可以看一下,有更好的解决方法欢迎分享。 浏览器记住密码自动填充表单 这个问题我在火狐浏览器遇到了。我登录系统时选择了浏览器…

【MySQL系列】统计函数(count,sum,avg)详解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

SpringBoot源码剖析

SpringBoot概念 什么是SpringBoot spring官方的网站:https://spring.io/ 翻译:通过Spring Boot,可以轻松地创建独立的,基于生产级别的基于Spring的应用程序,并且可以“运行”它们 其实Spring Boot 的设计是为了让你…

js中?.、??、??=的用法及使用场景

上面这个错误,相信前端开发工程师应该经常遇到吧,要么是自己考虑不全造成的,要么是后端开发人员丢失数据或者传输错误数据类型造成的。因此对数据访问时的非空判断就变成了一件很繁琐且重要的事情,下面就介绍ES6一些新的语法来方便…

分布式 - 服务器Nginx:一小时入门系列之TCP反向代理和负载均衡

文章目录 1. HTTP反向代理和TCP反向代理2. http 块和 stream 块3. TCP反向代理配置4. TCP 负载均衡 1. HTTP反向代理和TCP反向代理 Nginx可以作为HTTP反向代理和TCP反向代理。 HTTP反向代理是指Nginx作为Web服务器的代理服务器,接收客户端的HTTP请求,然…

AI智能工服识别算法

AI智能工服识别算法通过yolov5python网络深度学习算法模型,AI智能工服识别算法通过摄像头对现场区域利用算法分析图像中的工服特征进行分析实时监测工作人员的工服穿戴情况,识别出是否规范穿戴工服,及时发现不规范穿戴行为,提醒相…

cortex-A7 UART总线实验---STM32MP157

实验目的:实现字符/字符串收发 一,总线相关 1,总线:各个部件之间传输的一种媒介 芯片内部总线:核与芯片内部控制器进行连接 A7---AHB4总线---GPIO控制器 A7---AHB4总线---RCC控制器 芯片外部总线:SOC…

C# winform加载yolov8模型测试(附例程)

第一步:在NuGet中下载Yolov8.Net 第二步:引用 using Yolov8Net; 第三步:加载模型 private IPredictor yolov8 YoloV8Predictor.Create("D:\\0MyWork\\Learn\\vs2022\\yolov_onnx\\best.onnx", mylabel); 第四步:图…

速卖通产品权重打造,自养号补单技术策略

跨境电商市场的竞争确实很激烈,中小卖家要在速卖通上获得一席之地确实有一定难度。虽然补单可以提升销量和排名,但是目前的测评市场确实存在一些问题,选择一个成熟的服务商进行补单是非常重要的。 在选择服务商时,确保他们的技术…