代码
public static boolean flag=true;
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
synchronized(Object.class) {
for (int i = 1; i <=100; i++) {
if(!flag) {
Object.class.notify();
Object.class.wait();
}
flag=!flag;
System.out.println(Thread.currentThread().getName()+":"+i);
Object.class.notify();
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}, "A").start();
new Thread(new Runnable() {
@Override
public void run() {
try {
synchronized(Object.class) {
for (int i = 1; i <=100; i++) {
if(flag) {
Object.class.notify();
Object.class.wait();
}
flag=!flag;
System.out.println(Thread.currentThread().getName()+":"+i);
}
Object.class.notify();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}, "B").start();
}