首页 > 编程语言 >Java并发编程 --- 线程安全

Java并发编程 --- 线程安全

时间:2024-11-07 13:58:13浏览次数:1  
标签:Java 变量 --- 安全 线程 内存 操作

为什么会有线程安全问题?

为什么会存在线程安全问题呢?那我们先来探究一下JMM(Java内存模型)

image.png

线程与JMM

每个线程都有自己的工作内存,它会存储主内存中变量的Copy值,再对变量进行操作的时候,也是操作工作内存中变量的Copy值

当线程Dead(生命周期结束)时,才会将自己工作内存中的数据同步到主内存中。(同步不及时)

代码非原子

如i++操作,看着只有一条指令,但其实蕴含了三个操作,即:

1、先获取i的值。
2、将1操作获取到的值进行加1。
3、并将计算得到的值赋给i。

所以代码非原子性操作,也是产生线程安全的原因之一。

如有两个线程,分别对共享变量k进行++操作,然而可能因为操作的非原子性,导致他们在第一步获取值时的结果是相同的,造成后续k比预期少了1.

总结

造成线程安全问题的原因如下:

1、线程对变量的操作是在工作内存中操作且修改后同步到主内存不及时,导致其他线程感知不到发生了修改。

2、多线程下对资源的竞争。

3、操作的非原子性。

标签:Java,变量,---,安全,线程,内存,操作
From: https://www.cnblogs.com/ayu0v0/p/18532112

相关文章

  • 基于SpringBoot的Java教学支持系统开发指南
    1系统概述1.1研究背景随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理教学辅助平台的相关信息成为必然。开发合适的教学辅助平台,可以方便管理人员对教学辅助平台......
  • SpringBoot Java教学辅助平台:构建高效学习环境
    1系统概述1.1研究背景随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理教学辅助平台的相关信息成为必然。开发合适的教学辅助平台,可以方便管理人员对教学辅助平台......
  • 大厂卷起来了?50w-70w抢这类人!
    01大厂打响AI人才战求职招聘平台猎聘数据显示,今年一季度,AI相关职位同比增加321.7%,投递该领域的人才数量同比增长946.84%。目前最紧缺的大模型算法岗位,人才供需比仅为0.17,大概相当于6个岗位争夺1个人才。薪酬方面,AI人才的价值得到了前所未有的体现。年薪范围普遍设定在50......
  • Z-Library入口网站/最新官方国内可用地址(2024持续更新)
    Z-Library,作为全球最大的数字图书馆之一,提供了一个丰富的知识资源库,包括大量的电子书和学术文章。以下是对Z-Library的详细介绍和一些实用的信息。Z-Library数字图书馆简介藏书量:Z-Library拥有超过9,826,996本电子书和84,837,646篇期刊文章,覆盖了从文学、理工学科到人文艺术......
  • 2024-2025-1 20241401 《计算机基础与程序设计》 第七周学习总结
    班级链接2024计算机基础与程序设计作业要求第七周作业作业目标①数组与链表②基于数组和基于链表实现数据结构③无序表与有序表④树⑤图⑥子程序与参数教材学习内容总结《计算机科学概论》第八章抽象数据类型:用于定义数据和对数据的操作,而不需要具体实......
  • ts-泛型&类型声明文件
    泛型泛型允许我们在定义函数、类或接⼝时,使⽤类型参数来表示未指定的类型,这些参数在具体使⽤时,才被指定具体的类型,泛型能让同⼀段代码适⽤于多种类型,同时仍然保持类型的安全性泛型函数//设置泛型使用<T>,T是自定义名称,在函数中使用T表示该类型functionuser<T>(data:T):T{......
  • 系统中电源的设计和选择 BOSHIDA acdc电源模块 BAL2.5-5W
    系统中电源的设计和选择BOSHIDAacdc电源模块BAL2.5-5W1.确定所用电源的规格:电源功率电源输出电压,输出端数电源尺寸2.使用标准模块设计系统时,请尽可能使用市场上通用的标准电源模块。这样可缩短设计和开发的时间,提高可靠性。3.尽地减少电源的输出端数一-般很容易买到现成的1......
  • TCP-IP协议
    TCP协议是传输控制协议,工作在传输层。提供面向链接的,可靠的传输服务(三次握手,四次挥手)面向链接:数据传输之前,客户端与服务器之间要建立连接,才可以传输数据可靠的:数据传输是有序的,要对数据进行校验,数据不会丢失UDP协议:用户数据报协议,提供的是不可靠的,面向无连接的传输服务(只有......
  • CDDFuse: Correlation-Driven Dual-Branch Feature Decomposition for Multi-Modality
    文章信息标题CDDFuse:Correlation-DrivenDual-BranchFeatureDecompositionforMulti-ModalityImageFusion会议及时间CVPR2023主要内容为了解决建模跨模态特征和分解期望模态特有和模态共有特征的挑战,本文提出了一种用于多模态图像融合的双分支Transformer-CNN架构CDD......
  • 王慧文回归带队美团探索 AI 应用;对话音频开源模型 Hertz-dev:120 毫秒超低延迟丨 RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......