A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package seday10;
/**
* @author xingsir
* 互斥锁
* 当使用synchronized锁定多个代码片段,并且他们指定的同步监视器对象是同一个时,那么这些代码片段之间就是互斥的,
* 多个线程不能同时在这些代码片段中运行。
*/
public class syncDemo4 {

public static void main(String[] args) {
Boo boo = new Boo();//实例化
Thread t1 = new Thread() {//线程一
public void run() {
boo.mA();//调用方法
}
};
Thread t2 = new Thread() {//线程二
public void run() {
boo.mB();//调用方法
}
};
t1.start();//启动
t2.start();//启动

}

}
class Boo{
public synchronized void mA() {//synchronized锁定多个代码片段
try {
Thread thread =Thread.currentThread();//主线程
System.out.println(thread.getName()+":mA方法正在执行...");//打印
Thread.sleep(5000);//休眠5000毫秒
System.out.println(thread.getName()+":mA方法执行完毕");//打印
} catch (Exception e) {
// TODO: handle exception
}

}

public void mB() {
synchronized(this) {//synchronized锁定多个代码片段
try {
Thread thread=Thread.currentThread();//主线程
System.out.println(thread.getName()+":正在执行mB方法...");//打印
Thread.sleep(5000);//休眠5000毫秒
System.out.println(thread.getName()+":执行mB方法完毕!");//打印
} catch (Exception e) {
e.printStackTrace();

}
}
}

}

1 个回复

正序浏览
有任何问题欢迎添加学姐微信
DKA-2018
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马