标签: java multithreading concurrency visibility memory-barriers
考虑以下示例:
主题1:
data.a = 1; synchronized (sth) { shared = data; }
主题2:
synchronized (sth) { assertEquals(1, shared.a); }
假设线程2中的代码在线程1的代码之后执行。
断言是否保证成功,即。线程#1中锁定释放固有的内存屏障是否扩展到同步块之前和之外的值1的赋值?