zoukankan      html  css  js  c++  java
  • final域的内存语义

    写final域的重排序规则
    读final域的重排序规则
    final域为静态类型
    final域为抽象类型


    写final域的重排序规则
      写final域的重排序的规则禁止把final域的写 重排序到构造方法之外。
      Java的内存模型禁止编译器把final域的写重排序到构造方法之外
      编译器会在final域的写之后,在构造方法执行完毕之前,插入一个内存屏障StoreStore,保证处理器把final域的写操作在构造方法中执行。
      内存屏障
        LoadLoad load1 loadload load2
        StoreStore store1 storestore store2
        LoadStore
        StoreLoad

    读final域的重排序规则
      在一个线程中,初次读对象引用和初次读该对象所包含的final域,Java内存模型禁止处理器重排序这两个操作。

    Final域为抽象类型
      在构造方法内对一个final引用的对象的成员域的写入,与随后在构造方法外把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。

  • 相关阅读:
    unity抗锯齿效果
    DoTween联合动画Sequence的使用
    Unity3D获取模型在运动中任意帧的顶点坐标
    超长文件夹的删除。
    转 nandflash和norflash 片内执行~很详细
    (2)dsp emif 和 flash
    dsp emif 和 flash
    char and int
    DSP EMIF
    flash and sdram
  • 原文地址:https://www.cnblogs.com/gotodsp/p/8847777.html
Copyright © 2011-2022 走看看