JAVAEE初阶 多线程基础(四)

join的知识补充,线程的状态和线程安全

    • 一.多线程完成运算操作
    • 二.多线程代码的变换
      • 2.1 转换成串行执行
    • 三.join的参数
    • 四.获取线程的引用
      • 4.1用this方法获取实例
      • 4.2 用currentThread获取实例
    • 五.线程的状态
    • 六.线程安全

一.多线程完成运算操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以发现,多线程并行比单线程的速度快1倍左右,所以多线程的效率还是远远高于单线程

在这里插入图片描述

二.多线程代码的变换

2.1 转换成串行执行

在这里插入图片描述

在这里插入图片描述

三.join的参数

在这里插入图片描述

(1) 第一个参数:死等,可能会导致程序卡住,无法处理后续逻辑
(2) 有上限时间的等待,上限时间到了之后,就不再等
(3) 设置一个ns级别的等待。

四.获取线程的引用

4.1用this方法获取实例

在这里插入图片描述
在这里插入图片描述

4.2 用currentThread获取实例

在这里插入图片描述
在这里插入图片描述

五.线程的状态

1.NEW 创建Thread对象
2.Runnable 就绪状态,随时到CPU执行或者正在CPU上执行
3.Terminated Thread对象还存在,但是线程内部执行完毕
4.Timed_waiting 指定时间的阻塞,到达一定时间后解除阻塞
5.waiting 不带时间的阻塞,满足一定条件解除阻塞,join和wait会进入这种状态。
6.Blocked 带有锁竞争

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六.线程安全

在这里插入图片描述
在这里插入图片描述

两个线程进行的时候为什么count最终是63755呢?

我们会有三步

1.load 将内存中的数据读取到寄存器上
2.add 将寄存器内部的值+1
3.save 将寄存器上的值放回到内存中

下面是几种状态
在这里插入图片描述
在这里插入图片描述
结论可以得到
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity EventSystem的一些理解和使用

Unity的EventSystem是用于处理用户输入和交互的系统。它是Unity UI系统的核心组件之一,可以用于捕捉和分发各种事件,例如点击、拖拽、按键、射线等。 常用的属性和方法有以下这些: 属性: current: 获取当前的EventSystem实例。…

Ubuntu 22.03 LTS 安装deepin-terminal 实现 终端 分屏

deepin-terminal 安装 源里面自带了这个软件,可以直接装 sudo apt install deepin-terminal 启动 按下Win键,输入deep即可快速检索出图标,点击启动 效果 分屏 CtrlShiftH 水平分割 CtrlShiftJ 垂直分割 最多分割成四个小窗口&#xff0…

销售流程中如何有效开发客户

在销售的海洋中,如何游刃有余地开发客户是一大关键。这需要深入了解你的目标客户,制定一份精细的销售计划,选择最合适的沟通方式,建立信任和信誉,并持续不断地跟进。 每一个潜在的客户都是一颗璀璨的星辰,…

医学影像PACS源码:PACS系统的基础知识(DICOM、HL7、SWF)

1、PACS PACS是Picture Archiving and Communication Systems首字母缩写,全称为影像储存和传输系统,涉及放射医学、计算机技术、通讯技术及数字图像技术等,是医院信息系统的重要组成部分,是将数字医疗设备(如X线、CT、MRI、超声、…

ModuleNotFoundError: No module named ‘mdtex2html‘ module已经安装还是报错,怎么办?

用streamlit运行ChatGLM/basic_model/web_demo.py的时候,出现了module not found: ModuleNotFoundError: No module named mdtex2html Traceback: File "/home/haiyue/.local/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script…

Spring Cloud+Nacos 注册中心详解及开发示例

目录 一、Nacos 的关键特性包括: 二、逻辑架构及其组件介绍 三、Nacos安装 1、版本选择 2、预备环境准备 3、下载源码或者安装包 4、启动服务器 5、关闭服务器 四、如何引入 Nacos Discovery Starter 五、启动一个 Provider 应用 1 pom.xml的配置。一个完整的 pom.xm…

Phpstudy v8.0/8.1小皮升级Apache至最新,同时升级openssl版本httpd-2.4.58 apache 2.4.58

1.apache官网下载最新版本的apache 2.4.58 2.phpstudy下apache停止运行,把原来的Apache文件夹备份一份 复制图中的文件替换apache目录下文件 3.phpstudy中开启apache

【代码】微电网两阶段鲁棒优化经济调度方法(完美复现)matlab-yalmip-cplex/gurobi

程序名称:两阶段鲁棒优化—微电网两阶段鲁棒优化经济调度方法_刘一欣 实现平台:matlab-yalmip-cplex/gurobi 简介:针对微电网内可再生能源和负荷的不确定性,建立了 min-max-min 结构的两阶段鲁棒优化模型,可得到最恶…

从0开始学习JavaScript--JavaScript对象封装

JavaScript中的对象封装是一种重要的编程概念,它允许将数据和方法组织成一个独立的单元,实现了数据的保护和抽象。本文将深入探讨JavaScript对象封装的原理、实践和最佳实践。 封装的基础概念 封装是面向对象编程的基础概念之一,它强调将数…

a-table:表格组件常用功能记录——基础积累

antdvue是我目前项目的主流&#xff0c;在工作过程中&#xff0c;经常用到table组件。下面就记录一下工作中经常用到的部分知识点。 table组件 <a-table :dataSource"tableData":rowKey"(row) > row.id":scroll"{ y: 550 }"bordered:pag…

卷积神经网络入门

1.卷积神经网络基本结构结构 卷积神经网络采用类似于动物视觉皮层组织中的神经元的连接模式&#xff0c;是一类包含卷积神经网络且具有深度结构的前馈神经网络。其基本结构如图2-1所示&#xff0c;大致包括&#xff1a;卷积层&#xff0c;激活函数&#xff0c;池化层&#xff…

网站纪念哀悼主题风格

前言 在许多情况下&#xff0c;为了表达对逝者的怀念和哀悼&#xff0c;网站会将其风格调整为黑白色。这种做法在一些网站中非常常见&#xff0c;包括一些社交媒体平台和新闻网站等。 当一个网站将其风格调整为黑白色时&#xff0c;这通常意味着它正在为一些悲伤的事件或纪念日…