and*_*hov 2 java multithreading
我试图从 Java 内存模型的角度来理解“顺序一致性”。JLS 的定义,第 17 章对我来说不是很清楚。
我会给出我的看法,如果我错了,请纠正我。具有一个线程顺序一致性的程序意味着如果在程序顺序中action1在action2之前,那么action2应该看到action1的结果。
有两个线程。
线程 1:
action1
action2
Run Code Online (Sandbox Code Playgroud)
线程2:
action3
action4
Run Code Online (Sandbox Code Playgroud)
如果action3
看到 的结果action2
,那么它也应该看到 的结果action1
。
你是对的; 顺序一致性意味着每个动作都以原子方式执行,并且对所有线程立即可见。就好像你把所有的线程交织成一个线程,一个一个地执行动作。
请注意顺序一致性并不是 Java 内存模型实际工作的方式。
如果我们使用顺序一致性作为我们的内存模型,我们讨论过的许多编译器和处理器优化都是非法的。
归档时间: |
|
查看次数: |
1433 次 |
最近记录: |