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提了很多要求,也是我们分析并发等问题的根本依据。

0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程