美文网首页
并发编程

并发编程

作者: 迟凝丶捏米么 | 来源:发表于2018-06-22 16:49 被阅读12次

1.volatile字段理解
volatile变量规则:对一个变量的写操作先行发生于后面对这个变量的读操作

例子一:

  • 利用happen—before规则分析DCL
  • ps:从编译器指令重排序来分析DCL


    编译器指令重排序.png
  • 编译器重排序


    编译器.png
  • 处理器重排序


    volatile读.png
    volatile写.png

2.tomcat类加载机制

tomcat类加载机制.png

当应用需要到某个类时,则会按照下面的顺序进行类加载:

  • 使用bootstrap引导类加载器加载(位于jre/lib/ext下)
  • 使用system系统类加载器加载(位于CATALINA_HOME/bin下)
  • 使用应用类加载器在WEB-INF/classes中加载
  • 使用应用类加载器在WEB-INF/lib中加载
  • 使用common类加载器在CATALINA_HOME/lib中加载

3.加载顺序

    class X {  
        Y b=new Y();  
        X() {  
            System.out.println("X");  
        }  
    }  
    class Y {  
        Y() {  
            System.out.println("Y");  
        }  
    }  
    public class Z extends X {  
        Y y=new Y();  
        Z() {  
            super();  
            System.out.println("Z");  
        }  
        public static void main(String[] args) {  
            new Z();  
        }  
    }  
    //输出结果yxyz 

父类静态–>子类静态—>父类成员变量–>父类构造方法—–>子类成员变量—->子类构造方法

相关文章

网友评论

      本文标题:并发编程

      本文链接:https://www.haomeiwen.com/subject/exacyftx.html