Java内存模型 —— JMM_05 发表于 2023-12-10 更新于 2024-09-25 分类于 JUC并发编程 本文字数: 368 阅读时长 ≈ 1 分钟 锁的获取和释放的内存语义 class MonitorExample { int a = 0; public synchronized void write() { // 1 a++; // 2 } // 3 public synchronized void read() { // 4 int i = a; // 5 // ... } // 6} 线程A释放锁,实质上是线程A向接下来将要获取这个锁的某个线程发出了(线程A对共享变量所做修改的)消息。 线程B获取锁,实质上是线程B接收了之前某个线程发出的(在释放这个锁之前对共享变量所做修改的)消息。 线程A释放锁,随后线程B获取这个锁,这个过程实质上是线程A通过主内存向线程B发送消息。(隐式通信) 资料:https://www.bilibili.com/video/BV1LN411T7x9/ 强推 河北王校长 相关文章 线程池实现线程复用的原理 Java 中创建线程到底有几种方法? 实现一个简易线程池 Executor框架03 Executor框架02 本文作者: youyi 本文链接: https://codejuzi.icu/docs/1794.html 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!