用synchronized实现互斥锁

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

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
}get

}同步

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();io

}
}
}class

}thread