首页 > 编程语言 > 详细

多线程下,两个线程交替打印0 -100,使用wait()和notify()

时间:2020-01-14 14:04:59      阅读:88      评论:0      收藏:0      [点我收藏+]
public class ThreadTest {
// public static int i = 0;
private static final Object lock = new Object();//锁
public static class Thread1 extends Thread{
@Override
public void run(){
for (int i = 0; i <=100; i = i+2) {
synchronized (lock){
lock.notify();//唤醒,获取锁
System.out.println(Thread.currentThread().getName()+" "+i);
try{
lock.wait();//打印之后等待,释放锁,t2拿到锁开始工作
}catch (Exception e){
e.getLocalizedMessage();
}
}
}
}
}
public static class Thread2 extends Thread{
@Override
public void run(){
for (int i = 1; i <=100; i = i+2) {
synchronized (lock){
lock.notify();
System.out.println(Thread.currentThread().getName()+" "+i);
try{
lock.wait();//打印之后等待
}catch (Exception e){
e.getLocalizedMessage();
}
}
}
}

@Test
public void Test(){
try {
new Thread1().start();
new Thread2().start();
Thread.sleep(200);//这里不加sleep在IDEA中运行可能会造成程序提前结束打印不全
}catch (Exception e){
e.getLocalizedMessage();
}
}
}
}

多线程下,两个线程交替打印0 -100,使用wait()和notify()

原文:https://www.cnblogs.com/zhuangyao/p/12191486.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!