【Java并发编程一】并发与并行

为什么引入并发

 摩尔定理逐渐失效,单核性能很难提升,通过组合多核性能来进一步满足实际需要,从而引入并发编程。在大部分场景下,并行是由于串行的,并行可以优化非关键节点的时间消耗。

并发的三大特性

  1. 原子性
     某个操作不可被中断,不可被分割。
  2. 可见性
     对于一些变量的修改,需要告知其他线程。
  3. 有序性
     由于编译器的设计者为了提高程序的效率,由此引入了指令重排。对于值的读取与修改需要多个步骤,对指令进行重排可以提高效率。这对串行没有影响,但会让并行程序出错。解决措施之一是引入volatile关键字:
java 复制代码
volatile int num;

这样程序就不会对含有volatile关键字的指令进行重排。

相关推荐
唠点键盘之外的6 小时前
10 Spring Boot + 大模型:Java 项目接入 AI 的三种姿势
java·spring boot·aigc·cursor
NWU_LK6 小时前
【WebFlux】第五篇 —— 两种编程模型与 WebClient
java
艾伦野鸽ggg6 小时前
JavaScript 浏览器本地存储
开发语言·javascript·ecmascript
增量星球6 小时前
《持续交付2.0系列六》业务需求协作管理
java·运维·自动化·devops·持续部署·持续集成
重生之我是Java开发战士6 小时前
【Java EE】Spring IoC 与 DI
java·spring·java-ee
SimonKing6 小时前
阿里要求全员卸载 Claude Code:事件始末与深层逻辑
java·后端·程序员
云烟成雨TD6 小时前
Agent Scope Java 2.x 系列【42】2.0 GA 正式发布:从透明开发迈向智能体系统工程
java·人工智能·agent
AOwhisky7 小时前
Python 学习笔记(第十一期)——运维自动化(上·后篇):进程级监控与子进程管理——psutil进阶
运维·开发语言·python·学习·云原生·运维开发
猫猫不是喵喵.7 小时前
SpringBoot自动装配原理
java·spring boot·后端
刘小八7 小时前
Redis 缓存一致性:一文讲透延时双删原理、并发时序
java·数据库·redis·缓存