• 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;

     

  • 相关阅读:
    java中tif转png
    HTTP服务器、WEB服务器、应用服务器
    word将编号转成普通文本
    浏览新闻常用单词
    手机端搜索的回车事件
    C#(winform)的label自动换行
    oracle for update wait 解析
    java8 新特性parallelStream 修改默认多线程数量
    ArcObjects您必须有许可证才能使用此ActiveX控件
    图灵社区电子书 全高清可编辑 内含多种格式 [珍藏]
  • 原文地址:https://www.cnblogs.com/wnwn/p/12581002.html
Copyright © 2020-2023  润新知