JAVA_线程同步

 1 java的监视器中支持两种 互斥和 协作

    互斥: java通过对象锁 实现互斥,允许多个线程在同一个共享数据上 独立而互不影响的工作

   协作: 通过Object 类的 wait和notify 方法来实现,允许多个线程为了同一个目标而工作。

   

2 对象锁

    java程序 需要为两种多线程访问数据进行协调:

      保存在堆中的 实例变量

      保存在方法区中的 类变量

     每个对象和类 逻辑上都是和一个监视器相关联的

      对于对象:相关联的监视器保护对象的实例变量

      对于类: 相关联的监视器 保护类的类变量

     当java 虚拟机装载一个class文件的时候,他会创建一个java.lang.Class 类的实例。当锁住一个类的时候,实际上锁住的是哪个类的class 对象

 

3 同步语句

        synahronized(this){}

 

4 同步方法

         public synahronized void function(){}

 

 

 

你可能感兴趣的:(java)