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

为什么引入并发

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

并发的三大特性

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

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

相关推荐
南棱笑笑生22 分钟前
20251213给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时适配CTP触摸屏FT5X06
linux·c语言·开发语言·rockchip
hgz07101 小时前
JMeter性能压测执行与Linux环境部署
java·linux·jmeter
考虑考虑1 小时前
jdk9中的module模块化
java·后端·java ee
兩尛1 小时前
高频提问部分
开发语言·后端·ruby
冷yan~1 小时前
GPT-5.2 深度技术解析:OpenAI 最强模型的架构与性能突破
java·gpt·ai·架构·ai编程
深蓝电商API2 小时前
企业级爬虫架构设计:任务调度、容错、重试、降重
开发语言·爬虫·ruby
芝麻开门-新起点2 小时前
第13-1章 Python地理空间开发
开发语言·python
Dwzun2 小时前
基于SpringBoot+Vue的二手书籍交易平台系统【附源码+文档+部署视频+讲解)
java·vue.js·spring boot·后端·spring·计算机毕业设计
期待のcode2 小时前
Wrapper体系中的condition参数
java·spring boot·后端·mybatis
肥大毛2 小时前
C++入门学习---结构体
开发语言·c++·学习