美文网首页
并发编程

并发编程

作者: 迟凝丶捏米么 | 来源:发表于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