• Happens-before先行发生原则


    简介

      从JDK1.5,java使用新的JSR-133内存模型;JSR-133使用happens-before的概念来阐述操作之间的内存可见性;在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么者两个操作之间必须要存在happens-before关系;这里两个操作可以是在一个线程之内,也可以是在不同线程之间;

    happens-before八大原则

      1.程序次序原则:

        在一个线程内,按照代码的顺序,书写在前面的代码优先于书写后面的代码;

      2.管程锁定规则:

        一个unlock操作先行发生于后面对同一个锁的lock操作,注意是同一个锁;

      3.volatile原则:

        对于一个volatile变量的写操作先行发生于后面对变量的读操作;

      4.线程启动原则:

        Thread对象的start()方法优先于此线程的每一个动作;

      5.线程终止原则:

        线程中所有的操作都优先发生于此线程的每一个动作;

      6.对象中断原则:

        对象的interrupt()方法的调用优先发生于被中断线程的代码监测中断事件的发生;先中断再检测;

      7.对象终结原则:

        一个对象的初始化(构造函数执行完毕)完成优先发生于它的finalize()方法的开始;

      8.传递性

        如果操作A先行发生于操作B,而操作B又先行发生于操作C,则可以得出操作A先行发生于操作C;

     

  • 相关阅读:
    将view添加到地图覆盖物
    将eclipse的编码改成UTF-8,默认是GBK
    Android调用系统关机与重启功能
    Android中preference标签的使用
    linux中convert用法
    RookeyFrame在线新增模块
    RookeyFrame2.0发布,UI重构
    Rookey.Frame v1.0 视频教程发布了
    Rookey.Frame企业级快速开发框架开源了
    RookeyFrame模块初始化
  • 原文地址:https://www.cnblogs.com/wnwn/p/12581002.html
Copyright © 2020-2023  润新知