package com.example.concurrent.synchronize;
/**
* Created by alanchen on 15/9/23.
*
*
* SyncObject:这个是A
SyncObject:这个是C
间隔两秒后打印
SyncObject:这个是B
*/
public class SyncObject {
private static final Object lock = new Object();
static void prtb() throws InterruptedException {
synchronized (lock) {
System.out.println("SyncObject:这个是B");
Thread.sleep(2000);
}
}
static void prta() throws InterruptedException {
synchronized (lock) {
System.out.println("SyncObject:这个是A");
Thread.sleep(2000);
}
}
static void prtc() {
System.out.println("SyncObject:这个是C");
}
/**
* 结果:
* 先显示
* 这个是A
* 过两秒后在显示这个是B.
*/
public static void test() {
new Thread(new Runnable() {
@Override
public void run() {
try {
prta();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
try {
prtb();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
prtc();
}
}).start();
}
}