美文网首页
synchornized和volatile

synchornized和volatile

作者: Crazy_Bear | 来源:发表于2020-08-04 16:36 被阅读0次
  • synchornized
    • 修饰实例方法
      作用于当前实例加锁,进入同步代码前要获得当前实例的锁,锁住的是对象的实例(this);
      public sychornized void func()
    • 修饰静态方法
      作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁锁住的是Class实例(类对象),又因为Class的相关数据存储在永久带PermGen(jdk1.8则是metaspace),永久带是全局共享的,因此静态方法锁相当于类的一个全局锁,会锁所有调用该方法的线程;
      public static synchornized void func()
    • 修饰代码块
      指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。锁住的是所有以该对象为锁的代码块。
      synchornized(对象){ //临界区 }
      note: 类对象和实例对象不一样
  • synchornized底层原理分析

相关文章

网友评论

      本文标题:synchornized和volatile

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