jmm内存模型的操作问题
来源:3-3 线程安全性-原子性-synchronized
Ray_Lee_HZ
2019-06-10
对于这个图,想问下,是所有执行read之前,都要执行lock么?还是说lock操作是一个可选择的,有的时候可以执行lock,有的不需要。我从课程中了解,lock应该是可选的,那么什么样的操作一定要执行lock?是不是之后的操作如果包含写操作,一定要lock? 对应的java语句是什么?
写回答
1回答
-
Jimin
2019-06-11
你好,lock与unlock是可选的,但是必须成对出现。这里的lock可以对应上课程里synchronized相关(当前这章没有,这章之后下一章有)的例子,是否要使用lock,其实主要看场景是否需要锁,使用锁主要是来解决并发环境下的线程安全问题。
不过,这里提到的锁其实是对jdk的限制,jdk提供给我们使用的类是要满足这些条件的,这里相当于jmm提了很多要求,也是我们分析并发等问题的根本依据。
00
相似问题