当前位置: 首页 > backend >正文

Java中如何创建操作线程

在java中提供了一个Thread 类

1.继承Threa类创建线程

在这里每一个线程是独立的逻辑 ,主线程和创建的线程会兵分两路,并发(并行+并发)执行,所有运行结构是一会是“hello Thread”,一会是“hello main”,交替打印,并且“hello Thread”不一定先执行。因此达到了并发编程的效果,能够高效使用cpu多核资源

但当我们把start改成run

这时就没有创建出另一个线程,只有一个主线程,就会在主线程里依次执行代码,打印的结构就是一值循环打印“hello Thread”,永远不会打印到“hello main"。

2.实现接口创建线程

使用Runnable的写法,和直接继承Thread之间的区别,主要就是解耦合

首先明确,创建线程,需要进行的两个关键操作: 1.明确线程要执行的任务

2.调用系统api创建出线程

任务本身,不一定和线程概念相关,我们可以把任务本身给提取出来,此时就可以随时把代码改成使用其他方式来执行这个任务。

3.使用匿名内部类

Thread的匿名内部类

Runnable的匿名内部类

上面这个代码还能简化一些,如下所示:

4.基于lambda表达式(推荐)

创建线程的方法除了上面这几种,还有其他的方法例如基于线程池,基于callable等方法创建线程。

http://www.xdnf.cn/news/876.html

相关文章:

  • Cad c# 射线法判断点在多边形内外
  • JVM内存模型与垃圾回收
  • 蚂蚁全媒体总编刘鑫炜再添新职,出任共工新闻社新媒体研究院院长
  • 《FDTD Solutions仿真全面教程:超构表面与光束操控的前沿探索》
  • vue项目通过GetCapabilities获取wms服务元数据信息并在openlayers进行叠加显示
  • prometheus-operator部署服务监控其他节点mysql服务
  • 重构・协同・共生:传统代理渠道数字化融合全链路解决方案
  • 如何远程访问家中服务器-FRP内网穿透详细
  • 获取电脑信息(登录电脑的进程、C盘文件信息、浏览器信息、IP)
  • Windows网络及服务:制作系统盘
  • idea30天使用无限使用
  • uni-app 状态管理深度解析:Vuex 与全局方案实战指南
  • Android audio_policy_configuration.xml加载流程
  • 云原生--基础篇-2--云计算概述(云计算是云原生的基础,IaaS、PaaS和SaaS服务模型)
  • 在 UE5 编辑器中,由于游戏设置 -> EV100 设置,点击播放前后的光照不同。如何保持点击播放前后的光照一致?
  • 如何在腾讯云Ubuntu服务器上部署Node.js项目
  • SVM(支持向量机)
  • Ray Tracing(光线追踪)与 Ray Casting(光线投射)
  • 【pytorch】torch.nn.Unfold操作
  • PyTorch实现糖尿病预测的CNN模型:从数据加载到模型部署全解析【N折交叉验证、文末免费下载】
  • Android端使用无障碍服务实现远程、自动刷短视频
  • 流量抓取工具(wireshark)
  • 大文件分片上传进阶版(新增md5校验、上传进度展示、并行控制,智能分片、加密上传、断点续传、自动重试),实现四位一体的网络感知型大文件传输系统‌
  • 二叉树操作与遍历实现
  • 详细介绍:MCP(大模型上下文协议)的架构与组件,以及MCP的开发实践
  • VTK官方C++ demo1
  • 论文分享:【2024 CVPR】Vision-and-Language Navigation via Causal Learning
  • Harbor对接非AWS对象存储
  • 零基础学Python——第六章:Python标准库
  • mongodb 存储数据的具体实现方式