并发编程的三大特性之有序性

简介: 并发编程的三大特性之有序性

有序性的概念

  • Java文件在被cpu执行前会进行编译成cpu可以执行的指令,为了提高cpu的执行效率会对其中的一些语句进行重排序。
  • Java指令最终是乱序执行的目的是为了提高cpu的执行效率,发挥cpu的性能


单例模式由于指令重排可能会出现上述的问题,原因就在于当你new出一个对象的时候,jvm将这个步骤分为了三个部分。开辟空间,初始化,指针指向开辟空间的地址。所以当出现指令重排的时候,只需要上述的最后两个步骤发生调换就会出现问题,导致空指针异常。


as-if-serial

as-if-serial语义:

不论指定如何重排序,需要保证单线程的程序执行结果是不变的。

而且如果存在依赖的关系,那么也不可以做指令重排。


happens-before

具体规则:

1. 单线程happen-before原则:在同一个线程中,书写在前面的操作happen-before后面的操作。

  2. 锁的happen-before原则:同一个锁的unlock操作happen-before此锁的lock操作

3. volatile的happen-before原则: 对一个volatile变量的写操作happen-before对此变量的任意操作。

 4. happen-before的传递性原则: 如果A操作 happen-before B操作,B操作happen-before C操作,那么A操作happen-before C操作。

 5. 线程启动的happen-before原则:同一个线程的start方法happen-before此线程的其它方法。

 6. 线程中断的happen-before原则:对线程interrupt方法的调用happen-before被中断线程的检测到中断发送的代码。

 7. 线程终结的happen-before原则:线程中的所有操作都happen-before线程的终止检测。

 8. 对象创建的happen-before原则:一个对象的初始化完成先于他的finalize方法调用。


JMM只有在不出现上述8中情况时,才不会触发指令重排效果。

不需要过分的关注happens-before原则,只需要可以写出线程安全的代码就可以。

volatile

volatile实现解决指令重排的问题是添加内存屏障。


如果您觉得我所提供的信息对您有帮助,欢迎您点赞、收藏和评论。如果您想要更深入的交流,您可以添加我的微信号,或者关注我的微信公众号。您的支持和鼓励是我持续写作的动力,我期待与您互动并提供更多有价值的信息。

相关文章
|
存储 缓存 算法
409操作系统学习笔记——内存管理(二)
409操作系统学习笔记——内存管理
3057 1
409操作系统学习笔记——内存管理(二)
|
7月前
|
机器学习/深度学习 存储 人工智能
AI 十大论文精讲(九):无损失量化革命——LLM.int8 () 破解千亿大模型内存困局
本文解读AI十大核心论文第九篇《LLM.int8()》,聚焦大模型推理中的内存瓶颈问题。该论文提出创新的混合精度量化方法,通过向量级量化与异常值分离技术,首次实现千亿参数模型无损8位量化,显著降低部署成本,提升计算效率,推动大模型在消费级硬件上的落地应用,为低比特量化研究奠定重要基础。
862 8
|
28天前
|
存储 人工智能 测试技术
Hermes Agent:深度技术剖析报告
Hermes Agent 是Nous Research于2026年开源的自主AI智能体框架,首创“闭环学习回路”,通过五层记忆系统、自主技能生成(Skill)、辩证式用户建模(Honcho)与FTS5跨会话搜索,解决LLM“失忆症”。MIT许可,Python构建,支持多平台、多模型Provider及MCP双向集成,GitHub星标超1.7万。
724 1
|
1月前
|
前端开发 NoSQL Java
【AgentScope Java新手村系列】(9)SpringBoot集成
SpringBoot集成 — 工厂方法将 HarnessAgent 注册为单例 Bean,WebFlux 流式输出 streamEvents 到 SSE 端点。
268 3
|
1月前
|
人工智能 缓存 NoSQL
阿里云服务器通用算力型u1实例2核4G配置199元怎么样?实例性能、购买资格与适用场景解析
阿里云199元/年的通用算力型u1实例云服务器(2核4G、5M固定带宽、80G ESSD云盘),专为企业实名用户打造,活动截止2027年3月31日。该实例采用独享型架构,搭载Intel Xeon Platinum处理器,基准算力对标第5代企业级实例,最高可媲美第6代,网络收发包达30万PPS,性能稳定无基线限制。限企业用户购买,每人限1台,支持续费同价,覆盖国内外多个地域节点。
|
4月前
|
人工智能 网络协议 数据中心
你的GPU正在“等米下锅”:RDMA如何修出一条绕过CPU的高速公路?
本文深度解析现代集群网络的底层革命:从冯·诺依曼瓶颈出发,剖析RDMA如何通过零拷贝、内核旁路与硬件卸载突破TCP/IP桎梏;直击其易用性差、连接爆炸、内存注册昂贵等痛点;并揭示Mooncake(面向LLM KV Cache的张量传输引擎)与Infinistore(万卡级分布式KV底座)如何以内存池化、拓扑感知、RC/UD混合等架构创新, bridging hardware power and software simplicity。
749 7
|
6月前
|
供应链 监控 安全
APT28全球钓鱼风暴突袭海事命脉:一封“船期变更”邮件,竟能瘫痪港口系统?
2025年底,APT28组织发动全球钓鱼攻击, targeting航运、港口与物流企业。通过伪造提单、海关通知等邮件,利用宏病毒与远程模板注入渗透内网,窃取敏感货运数据,甚至威胁关键基础设施安全。攻击横跨欧、美、亚,凸显海事网络安全短板。专家呼吁强化邮件防护、网络隔离与人员意识,构建纵深防御体系,警惕每一封“普通”邮件背后的国家级威胁。
429 4
|
6月前
|
机器学习/深度学习 人工智能 算法
放弃手搓算法吧!ReEvo:让大模型通过“反思”自动进化出SOTA算法
ReEvo提出“语言梯度”新范式,让大模型通过自我反思进化算法。它使LLM不再盲写代码,而是像专家般分析优劣、总结经验,逐步优化出超越人类设计的启发式算法,在芯片布局、TSP等问题上表现SOTA,实现AI自动“炼”算法的突破。
480 0
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。