Java内存模型:易变变量和发生之前

Java内存模型:易变变量和发生之前,第1张

Java内存模型:易变变量和发生之前
  • i = 1
    总是在 发生之前
    v = 2

真正。根据JLS第17.4.5条,

如果 xy 是同一线程的动作,并且 x 按程序顺序位于 y 之前,则 hb(x,y)


  • v = 2
    __
    vDst = v
    仅在JMM中实际发生时才 发生- 在JMM中
  • i = 1
    __ 如果实际上发生在时间之前,则发生
    iDst = i
    在JMM中-before -before (并且
    iDst
    将可预测地分配
    1
    v = 2``vDst = v

假。先发生先后顺序不能保证事物在物理时间内先发生。在JLS的同一部分,

应该注意的是,两个动作之间存在先发生关系并不一定意味着在实现中它们必须按照该顺序进行。如果重新排序产生的结果与合法执行相符,则不合法。

它,然而,保证

v = 2
之前发生
vDst = v
i = 1
之前发生
iDst = i
,如果
v = 2
之前谈到
vDst= v
同步顺序,在执行,往往是误认为是实时订单的同步动作的总订单。


  • 否则,
    i = 1
    和之间的顺序
    iDst = i
    不确定,并且的结果值
    iDst
    也不确定

这是,如果情况

vDst = v
到来之前
v = 2
在同步顺序,但实际时间不来了进去。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5475481.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存