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

为什么引入并发

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

并发的三大特性

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

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

相关推荐
jvstar1 分钟前
JNI 面试题及答案
java
froginwe114 分钟前
SQLite Indexed By
开发语言
虾说羊5 分钟前
JVM 高频面试题全解析
java·开发语言·jvm
雨中飘荡的记忆10 分钟前
MyBatis SQL解析模块详解
java·mybatis
czlczl2002092510 分钟前
Spring Cache 全景指南
java·后端·spring
invicinble16 分钟前
透视IDEA,IDEA认识到什么程度算精通
java·ide·intellij-idea
wanzhong233316 分钟前
NLS开发日记1-初始化项目
java·项目
毕设源码-赖学姐18 分钟前
【开题答辩全过程】以 基于PHP的国学诗词网站与推荐系统的设计与实现为例,包含答辩的问题和答案
开发语言·php
盼哥PyAI实验室18 分钟前
[特殊字符]️ 实战爬虫:Python 抓取【采购公告】接口数据(含踩坑解析)
开发语言·爬虫·python
Hello.Reader18 分钟前
Flink ML VectorAssembler 把多列特征“拼”成一个向量列(数值 + 向量都支持)
java·python·flink