题目要求:
- 启动两个线程, 一个输出 1,3,5,7…99, 另一个输出 2,4,6,8…100 最后 STDOUT 中按序输出1,2,3,4,5…100 ,要求用 Java 的 wait + notify 机制实现。
public class testWaitNotify {
public static void main(String[] args) {
Thread t1 = new Thread(new Task());
Thread t2 = new Thread(new Task());
t1.start();
t2.start();
}
}
class Task implements Runnable{
private static Object lock = new Object();
private static volatile int index = 0;
@Override
public void run() {
for (int i = 0; i < 50; i++) {
synchronized (lock) {
index++;
System.out.print(index + ",");
if(index % 2 == 0){
lock.notify();
} else{
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}