⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staticlockandobjlock.java

📁 介绍线程的使用方法
💻 JAVA
字号:
package thread.lock;

/**
 * <p>Title: </p>
 *
 * <p>Description:类锁和实例锁混合使用 </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: netsky</p>
 *
 * @author wdz123@hotmail.com
 * @version 1.0
 */
public class StaticLockAndObjLock {
  /**
   *类锁
   * **/
  private static Object staticLock=new Object();
  /**
   * 实例锁
   * **/
  private  Object objLock= new Object();
  public StaticLockAndObjLock() {
  }

  /***
   * 实例方法中混合使用类锁和实例锁。
   * ***/
  public void objMethrodA(){
    ///获取实例锁
    synchronized(objLock){
      ///处理一堆事情
      //....
      //获取类锁
      synchronized(staticLock){
        //处理一堆事情
        ///....比如,并发修改类属性
      }
    }
  }
  /***
   * 类方法中混合使用类锁和实例锁
   * **/
  public  static void  staticMethrodA(){
    //获取类锁
    synchronized(staticLock){
      //处理一堆事情
      ///....比如,并发修改类属性

      //为了使用实例锁,先得生成一个实例
      StaticLockAndObjLock o =new StaticLockAndObjLock();
      ///获取实例锁
      synchronized(o.objLock){
        ///处理一堆事情
       //....
     }
    }
  }

  public static void main(String[] args) {
    StaticLockAndObjLock staticlockandobjlock = new StaticLockAndObjLock();
    staticlockandobjlock.objMethrodA();
    StaticLockAndObjLock.staticMethrodA();
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -