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

为什么引入并发

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

并发的三大特性

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

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

相关推荐
吃喝不愁霸王餐APP开发者13 分钟前
Java后端系统对接第三方外卖API时的幂等性设计与重试策略实践
java·开发语言
写代码的【黑咖啡】18 分钟前
深入理解 Python 中的模块(Module)
开发语言·python
TG:@yunlaoda360 云老大19 分钟前
华为云国际站代理商的CBR主要有什么作用呢?
java·网络·华为云
wuk9981 小时前
matlab为地图进行四色着色
开发语言·matlab
_MyFavorite_1 小时前
cl报错+安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
charlie1145141911 小时前
现代嵌入式C++教程:C++98——从C向C++的演化(2)
c语言·开发语言·c++·学习·嵌入式·教程·现代c++
zmzb01031 小时前
C++课后习题训练记录Day55
开发语言·c++
李白同学1 小时前
C++:继承
开发语言·c++
k***92161 小时前
【C++】STL详解(九)—priority_queue的使用与模拟实现
开发语言·c++
速易达网络1 小时前
基于Java TCP 聊天室
java·开发语言·tcp/ip