zoukankan      html  css  js  c++  java
  • JVM 重排序

      在java代码到最终执行的指令序列的整个过程中,会出现重排序.也就是说最终执行的顺序并不是按照源代码执行的顺序来进行的.

    其中1为编译器的优化重排序,2,3是处理器的重排序.

    数据依赖

      如果两个操作访问同一个变量的话,而且其中一个为写操作,那么这两个操作是存在数据数据依赖的.  

      

      JMM规定,存在数据依赖的操作的执行顺序不能被重排的.这里所说的数据依赖是指的是单个处理器或者单个线程之间的两个操作,对于不同处理器或者不同线程之间的数据依赖不被编译器或者处理器考虑.

      

    as-if-serial语义

      指的是不管如何的重排序,最终的处理结果是不能改变的.所以存在数据依赖的操作是不能被重排序的.  

  • 相关阅读:
    Thread与Handler
    开始机顶盒的生涯
    解决布局被键盘顶的难题
    自动滚动的Textview
    2-解决粘包问题
    1-socket编程
    zipfile模块
    subprocess模块
    day31-异常处理
    collections模块
  • 原文地址:https://www.cnblogs.com/plxx/p/5340193.html
Copyright © 2011-2022 走看看