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();

        }

    }
}

}

将main方法中第2行代码改为Thread t2 = new Thread(new Mythread2(number));即可

img

img

不输出肯定是run方法里的输出语句没有执行,可以打断点看一下问题。
还有number里面的i一直是0,