public class testSynchronzied {
private static final Object a = new Object();
private static final Object b = new Object();
public static void main(String[] args) {
new Thread(new Syn(true)).start();
new Thread(new Syn(false)).start();
}
static class Syn implements Runnable{
private boolean flag;
public Syn(boolean flag) {
this.flag = flag;
}
@Override
public void run() {
if(flag){
synchronized (a){
System.out.println(Thread.currentThread().getName()+":抢到a");
synchronized (b){
System.out.println(Thread.currentThread().getName()+":抢到b");
}
}
}else {
synchronized (b){
System.out.println(Thread.currentThread().getName()+":抢到b");
synchronized (a){
System.out.println(Thread.currentThread().getName()+":抢到a");
}
}
}
}
}
}