zoukankan      html  css  js  c++  java
  • 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;

     

  • 相关阅读:
    深入理解jsonp跨域请求原理
    vue项目性能优化总结
    脱离Office约束,C#结合Mpxj组件完美解析MSProject(.mpp)文件
    将list转换成DataTable
    json时间格式化
    C# DES加密解密
    asp.net mvc ViewBag常用操作
    Jquery ajax与asp.net MVC前后端各种交互
    存储过程实现树形目录外联其他表实现每个节点的统计
    CSS自定义右键菜单
  • 原文地址:https://www.cnblogs.com/wnwn/p/12581002.html
Copyright © 2011-2022 走看看