java - 什么是同步块(synchronized block)中的读屏障和写屏障

标签 java multithreading

我正在研究 synchronized 和 volatile 变量在 java 中是如何工作的,我遇到了一个叫做 read and write barrier 的概念。任何人都可以帮助我理解这些术语的含义

最佳答案

(上面的回答很完整),我只是想用一个简单的方案来演示这个概念

 Thread 1                                                             Thread 2


   |          
   |                                                                      
   |                                                                      |
   |                                                                      |
   |  Everything Thread 1                                                 |
   |   wrote before here                                                  |
   |                                                                      |
   |                                                                      |
    _ _ _ _ _ _ _ _ _ _                                                   |
      ( write  barrier)         (happens before)         (read barrier)   |
   |                                                     _ _  _ _ _ _ _ _  
   |
   |                                                   is guaranteed      |
   |                                                  to be visible to    |
   |                                                  Thread 2            |
   |                                                                      |

关于java - 什么是同步块(synchronized block)中的读屏障和写屏障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18485791/

相关文章:

java - 恢复关闭应用程序之前打开的最后一个 fragment

java - HazelcastInstance 与 HazelcastClient

c++ - 将 lambda 传递给 std::thread 并调用类方法

java - 几个问题,当使用 TestNG 使用多线程运行测试方法时

c - Ubuntu 上的 "__thread"

java - 带有线程池执行器服务的 Vert.x 服务,CPU 使用率高

java - 如何通过 Selenium 中的 AutoIt 脚本动态上传文件?

java - String 类型中的方法 format(String, Object[]) 不适用于参数 (String, int, int)

java - Spring javax.validation问题

python - 如果没有从主模块调用 wx.app.mainloop,线程将无法启动