2019-10-29 09:18  阅读(2411)
文章分类:JMM

文章首发于:clawhub.club


重排序规则

写final域的重排序规则:
  1. 禁止对final域的写重排序到构造函数之外
    编译器会在final域写之后,构造函数return之前,插入一个storestore屏障,这个屏障可以禁止处理器把final域的写重排序到构造函数之外。
  2. 禁止在构造函数对一个final修饰的对象的成员域的写入与随后将这个被构造的对象的引用赋值给引用变量重排序。
读final域重排序规则:
  1. 在一个线程中,初次读对象引用和初次读该对象包含的final域,JMM会禁止这两个操作的重排序。
    处理器会在读final域操作的前面插入一个LoadLoad屏障。

参考:

Java并发系列六:深入了解final关键字


来源:https://www.jianshu.com/p/347ea7f881f8

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 【JMM】-同步原语之final重排序规则
上一篇
【JMM】同步原语之volatile
下一篇
【JMM】线程之简介与分类