使用Java对象引用利用同步块进行线程间通信

时间:2016-12-01 14:59:01

标签: 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的赋值?

0 个答案:

没有答案