001个java多线程实例对象锁与类锁

  

包com.skcc.mthread;   公共类MuiltThread {

  
 <代码>私有静态int num=0;
  
  公共MuiltThread () {//TODO自动生成构造函数存根
  }/* * * *
  *同步空白printNum(字符串标记)代表同步锁定的MuiltThread实例对象锁(m1, m2两者间互不影响)
  *静态同步空白printNum(字符串标记)代表同步的竞争的是MuiltThread类锁
  *
  * * * * */公共静态同步空白printNum(字符串标记){
  尝试{
  如果(tag.equals (a)) {
  num=100;
  system . out。println(“标签,num 100套。”);//thread . sleep (1000);
  }
  其他{
  num=200;
  system . out。println(“标签b, num 200套。”);
  }
  system . out。println(“标记”+标签+“num”+ num);
  }捕捉(异常e) {//TODO:处理异常
  }
  }
  
  公共静态void main (String [] args) {//TODO自动生成方法存根
  
  MuiltThread m1=new MuiltThread ();
  MuiltThread m2=new MuiltThread ();
  
  线程t1=新线程(新Runnable () {
  
  @Override
  公共空间run () {//TODO自动生成方法存根//m1.printNum (“a”);
  MuiltThread.printNum (“a”);
  }
  });
  
  线程t2=新线程(新Runnable () {
  
  @Override
  公共空间run () {//TODO自动生成方法存根代码 之前
  

//m2.printNum (“b");
MuiltThread.printNum (“b");
}
});

  
 <代码> t1.start ();
  t2.start ();
  } 
  

}

001个java多线程实例对象锁与类锁