您的位置:首页 > 职场人生

面试题一:实现两个线程交替打印数字

2016-09-13 20:06 429 查看
public class Solution1 {
private static Object lock = new Object();

private static int i = 1;

public static void main(String[] args) {
Thread thread1 = new Thread() {
public void run() {
while (i <= 10) {
synchronized (lock) {
if (i % 2 == 1) {
System.out.println("thread1  " + i++);
} else {
lock.notifyAll();
try {
lock.wait(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}
}
};

Thread thread2 = new Thread() {
public void run() {
while (i <= 10) {
synchronized (lock) {
if (i % 2 == 0) {
System.out.println("thread2  " + i++);
} else {
lock.notifyAll();
try {
lock.wait(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}
}
};
thread1.start();
thread2.start();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: