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

为什么引入并发

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

并发的三大特性

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

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

相关推荐
菩提祖师_5 小时前
量子计算在网络安全中的应用
开发语言·javascript·爬虫·flutter
superman超哥5 小时前
Rust 线程安全性保证(Send 与 Sync):编译期并发安全的类型系统
开发语言·后端·rust·编程语言·并发安全·send与sync·rust线程
倔强的小石头_5 小时前
Python 从入门到实战(十八):学生成绩系统高级功能实战(实时通知与数据看板)
开发语言·python
indexsunny5 小时前
互联网大厂Java求职面试实战:Spring Boot与微服务在电商场景中的应用解析
java·数据库·spring boot·微服务·面试·消息队列·电商
亮子AI5 小时前
【JavaScript】forEach 是按数组顺序执行吗?
开发语言·javascript·ecmascript
菩提祖师_5 小时前
基于Docker的微服务自动化部署系统
开发语言·javascript·flutter·docker
廋到被风吹走5 小时前
【Java】【JVM】内存模型
java·开发语言·jvm
talenteddriver5 小时前
java: JAVA静态方法细节
java·前端·apache
indexsunny5 小时前
互联网大厂Java面试实录:从Spring Boot到微服务实战解析
java·spring boot·spring cloud·kafka·microservices·java interview·software development
独自破碎E5 小时前
整理一些可用来分析JVM性能的工具
jvm