并发(一):JMM内存模型和volatile关键字
JMM内存模型
每个Java线程都有⾃⼰的⼯作内存。操作数据,⾸先从主内存中读,得到⼀份拷⻉,操作完毕后再写回到主内存。
JMM可能带来可⻅性、原⼦性和有序性问题。
所谓可⻅性,就是某个线程对主内存内容的更改,应该⽴刻通知到其它线程。
所谓原⼦性,是指⼀个操作是不可分割的,不能执⾏到⼀半,就不执⾏了。
所谓有序性,就是指令是有序的,不会被重排。
volatile关键字
volatile 关键字是Java提供的一种轻量级的同步机制,它能保证可见性和有序性,但是不能保证原子性。
可见性
先做一个可见性的测试
原创
2021-05-12 15:48:09 ·
195 阅读 ·
2 评论