专注java. 2022-04-01 16:24 采纳率: 95%
浏览 39
已结题

java多线程交替输出 不知哪里除了错误 没有报错 但是控制台没有内容

public class WaitNotifyHomework {
public static void main(String[] args) {
Number number = new Number();

    Thread t1 = new Thread(new Mythread1(number));
    Thread t2 = new Thread(new Mythread1(number));
    t1.setName("t1");
    t2.setName("t2");
    t1.start();
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    t2.start();
}

}
class Number{
private int i = 0;
public Number() {
}
public int getI() {
return i;
}
public int work(){
return i++;
}
}
class Mythread1 implements Runnable{
private Number number;

public Mythread1(Number number) {
    this.number = number;
}
@Override
public void run() {
    while(number.getI()<100){
        synchronized (number) {
            if (number.getI() % 2 == 0){
                try {
                    number.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println(Thread.currentThread().getName()+""+number.work());
            number.notify();
        }

        }
    }

}

class Mythread2 implements Runnable{
private Number number;
public Mythread2(Number number) {
this.number = number;
}
@Override
public void run() {
while(number.getI()<100){
synchronized (number) {
if (number.getI() % 2 != 0){
try {
number.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+""+number.work());
number.notify();

        }

    }
}

}

  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 4月9日
      • 已采纳回答 4月1日
      • 创建了问题 4月1日

      悬赏问题

      • ¥15 vs创建SQL Server数据库时出现“系统找不到指定的路径”
      • ¥15 网页超时时间设置失效
      • ¥15 有关绿色信贷毕业论文的问题
      • ¥30 关于#机器人#的问题,如何解决?
      • ¥15 求MATLAB函数ScalarLayerDisplay的代码
      • ¥15 安卓如何自动执行检测到的NFC标签,无需再点确认
      • ¥15 pyHM库mouse模块的ValueError错误
      • ¥15 python opencv 摄像头 传感器
      • ¥30 eMMC&Android&C&Linux
      • ¥15 uniapp ios恢复购买