百天百题(1/100)Java创建线程的方式?

news2025/7/21 19:01:23

首先创建线程有四种种方式:

1.继承Thread类 

缺点:1.Java是不支持多继承的,所以我们不能在继承其他的类了

           2.不能通过线程池来此操作,每次创建一个线程都需要先创建一个类,创建和销毁线程对整体的资源开销是非常大的。

           3.每次启动一个线程都要去创建一个线程类来继承Thread,这样做的话,程序的耦合性会变高。

2.实现Runnable接口(推荐)

TIPS:通过实现Runnable接口创建线程的方式实际上不是创建一个线程的对象。但是可以理解为创建一个线程的任务,将这个任务作为参数扔到Thread的构造函数中去。最后调用start方法来启动线程。

优点:其实达到了解耦的效果,避免了代码重构带来的困难。节省资源,实现了线程的复用性。

以上两种方式都是拿不到返回线程的参数

3.实现Callable接口,并且结合Future实现(底层还是通过Runnable)

实现Callable接口并且指定泛型(需要什么类型就返回什么类型)

4.通过JDK自带的线程池Executors来创建对象

总结:创建线程的方式本质上是调用start方法,start方法继续调用run方法。

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

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

相关文章

Thread 类的基本用法

1.线程创建 Thread类:创建的线程都是一样的 1.继承Thread,重写run; 2.实现Runable,重写run; 3.使用匿名内部类,继承Thread; 4.使用匿名内部类,实现Runnable; 5.使用lambda表达式(常用&#xff…

IDEA插件系列(3):Maven Helper插件

一、引言在写Java代码的时候,我们可能会出现Jar包的冲突的问题,这时候就需要我们去解决依赖冲突了,而解决依赖冲突就需要先找到是那些依赖发生了冲突,当项目比较小的时候,还比较依靠IEDA的【Diagrams】查看依赖关系&am…

嵌入式学习笔记——使用寄存器编程操作GPIO

使用寄存器编程操作GPIO前言GPIO相关的寄存器GPIO 端口模式寄存器 (GPIOx_MODER) (x A..I)位操作GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x A..I)GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR) (x A..I/)GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x A..I/)GPIO 端口输入数据寄…

Python bool 到底怎么用? 【源码拆解】

人生苦短 我用python 一、布尔类型描述 布尔类型是计算机中最基本的类型, 它是计算机二进制世界的体现,一切都是 0 和 1 。 Python中的布尔类型只有两种值:True 和 False 。 (注意:首字母都是大写,与C、Ja…

女生学习大数据怎么样~有前景么

当前大数据发展前景非常不错,且大数据领域对于人才类型的需求比较多元化,女生学习大数据也会有比较多的工作机会。大数据是一个交叉学科涉及到的知识量比较大学习有一定的难度,女生则有女生的优势,只要认真学习了都是可以做大数据…

STM32定时器的编码器接口模式

MCU为STM32L431,通用定时器框图: 编码器接口模式一共有三种,通过TIMx_SMCR寄存器的SMS[3:0]位来选择。模式1计数器仅在TI1FP1的边沿根据TI2FP2的电平来判断向上/下计数;模式2计数器仅在TI2FP2的边沿根据TI1FP1的电平来判断向上/下…

Python面向对象的三大特征 - - 封装、继承、多态

目录 一、三大特征介绍 1、封装(隐藏) 2、继承 3、多态 二、继承 1、子类扩展父类 1.语法格式 2.构造函数 2、类成员的继承和重写 1. 成员继承 2. 方法重写 3、查看类的继承层次结构 4、object根类 1.描述 2. dir() 查看对象属性&#xff…

JVM-可达性分析算法

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈…

maven的学习

为啥要用maven 1、不用认为添加jar包所依赖的其他jar包 2、能在本地仓库只保留一份jar包,避免了多个工程使用相同jar包,需要重复导入的问题,减少冗余 3、能够规范添加jar包,在下载需要的jar包时有多种方法,但是不能保…

TeeChart VCL/FMX v2023 crack

TeeChart VCL/FMX v2023 crack TeeChart Pro VCL允许您为所有领域(包括商业、工程、金融、统计、科学、医疗、实时和网络)创建通用和专用图表和绘图应用程序。TeeChart Pro VCL具有多种图表类型的图表库,包括2D或3D线条、条形图、水平条、区域、点、饼图、箭头、气泡…

MySQL OCP888题解043-GTID模式下如何解决主键冲突问题

文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析3、知识点3.1、知识点1:GTID模式下跳过一个事务的方法4、总结1、原题 1.1、英文原题 A simple master-to-slave replication is currently being used. This information is extracted from the SH…

Kubernetes学习(三)Service

Service对象 为什么需要Service 每个Pod都有自己的IP地址,但是在Deployment中,在同一时刻运行的Pod集合可能与稍后运行该应用程序的Pod集合不同。 这就导致了一个问题:如果一组Pod(称为后端)为集群内其他Pod&#x…

Java测试题

选择题(共15题,每题2分)( B ) 1、使用下面哪个表达式能产生[20,999]之间的数?A.(int)(20Math.random( )*979) B.20(int)(Math.random( )*980)C.(int)Math.random( )*999 D.20(int)Math.random( )*980( C )2、请仔细阅读下面的程序…

【记录】Samba|Windows 11的Samba连接切换用户

Samba是一个用于共享文件和打印机的网络协议,可以使不同的操作系统之间共享文件和资源变得容易。在Windows 11上,可以使用Samba来连接到网络共享。 如果您想在Windows 11上切换用户并连接到另一个Samba共享,可以按照以下步骤操作。 文章目录…

乐山持点电商:抖音外卖上线全国18城公告

抖音日前在全国15个城市上线外卖业务,包括南京、厦门、合肥、嘉兴、宁波、广州、无锡、杭州、武汉、深圳、温州、苏州、金华、长沙、福州等。加上此前抖音外卖试点的北京、上海和成都,抖音外卖已覆盖全国18个城市,入驻商家主要集中在餐饮行业…

基于声网 Flutter SDK 实现多人视频通话

前言 本文是由声网社区的开发者“小猿”撰写的Flutter基础教程系列中的第一篇。本文除了讲述实现多人视频通话的过程,还有一些 Flutter 开发方面的知识点。该系列将基于声网 Fluttter SDK 实现视频通话、互动直播,并尝试虚拟背景等更多功能的实现。 如果…

lvgl 笔记 基础对象与组件

一、基础对象 1.1基础对象简介 lvgl 库是纯 c 语言编写的,使用结构体实现类的操作。其所有组件都继承字lv_obj_t,可以使用他的属性和方法。 创建一个基本对象非常简单: lv_obj_t* obj1 lv_obj_create(lv_scr_act()); 其中填入的 lv_scr_a…

KUKA U盘备份系统

KUKA U盘备份系统 原创 March Cai Cass 机器人 2022-03-10 12:39 首先想做系统备份,需要KUKA 官方的U盘,需要设置如下 双击KUKA U盘里的Recovery.exe 打开如右上图,点开专家设置 设置好需要的功能 返回主菜单组选择 配置界面,…

20230306 LS-DYNA悬臂梁案例学习笔记

一、创建材料 在左侧linear elastic,将这个拉至新建的mat材料上

【立体匹配论文阅读】Pyramid Stereo Matching Network

Authors: Jia-Ren Chang, Yong-Sheng Chen Link: https://arxiv.org/abs/1803.08669 Years: 2018 Credit Novelty and Question set up 本文提出之时,基于深度学习的立体匹配主流方式仍是patch-based孪生结构,这种方式缺乏上下文信息的获取能力&#xf…