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

为什么引入并发

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

并发的三大特性

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

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

相关推荐
学长毕设4 小时前
基于SpringBoot的景点管理系统-附源码
java·spring boot·后端
sxlishaobin5 小时前
Maven Setting详解
java·学习·maven
知守观5 小时前
一个方法两个触发口:反编译 XXL-Job 后,我看清了 inner/job 子包的裸奔现状
java·spring boot·微服务
用户3126874877205 小时前
CompletableFuture 链式编排:异步编程的优雅解法
java
瑞雪兆丰年兮5 小时前
JavaWeb-day14-SpringBootWeb原理篇
java·开发语言·spring boot·spring·bean·mybatis·javaweb
神仙别闹6 小时前
基于 Java GUI 贪心策略直接搜索算法和极大极小博弈树算法的智能人机博弈五子棋游戏
java·毕业设计·gui·贪心策略·极大极小博弈树
Flynn Liang7 小时前
RAG 评估体系:黄金集、检索指标与 LLM-as-Judge 落地
java·langchain·rag·评估·langchain4j·检索指标
SomeOtherTime7 小时前
Rust生命周期介绍(AI回答)
开发语言·后端·rust
程序猿打工仔7 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
喵本喵叁肆7 小时前
Rényi 差分隐私:把隐私损失看成一族矩(英文原题:Rényi Differential Privacy (CSF 2017))
开发语言·r语言