简介
最近也一直面试JMM,java memory Model,并发过程中如何处理可见性、原子性、有序性.
并发中的关键问题
-
线程间如何通信;wait(),notify(),notifyAll()
1. 共享内存--隐式通信
2. 消息传递--显示通信 -
线程之间如何同和同步
在共享模型中,
处理
在jmm中,什么是内存共享的呢?
-
volatile: 如int I=0;
- 对于声明了Volatile的变量进行写操作的时候,jVM会向处理器发送一条lock前缀指令,更新主内存.
- 缓存在多处理器情况下,保证各处理器缓存一致性特点,通过缓存一致性更新缓存
-
Synchronized :可重入锁、互斥性、可见性.
Volatile: 原子性、可见性,不能做到符合操作的原子性. -
Synchronized:
通过命令javap -v TestSyniz.class 查看字节码,
网友评论