public class TimerTest01 {
static int c = 0;
static Object obj = new Object();
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
while(c<10000){
//拿到obj这把锁
synchronized(obj){
try {
if(c%2==0){
System.out.println("偶数线程:"+c++);
//唤醒休眠线程
obj.notify();
}
else obj.wait();//让当前线程进入休眠状态,并把obj这把锁释放
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
while(c<10000){
synchronized(obj){
try {
if(c%2!=0){
System.out.println("奇数线程:"+c++);
obj.notify();
}
else obj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
}
利用wait和notify让两个线程交替输出奇偶数
最新推荐文章于 2024-05-09 17:51:30 发布