包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多线程实例对象锁与类锁