交替打印奇数偶数

public class printEvenAndOdd {

    public static void main(String[] args) {
        Num num =new Num();
        Thread even = new Thread(new printEven(num));
        Thread odd = new Thread(new printOdd(num));
        even.start();
        odd.start();

    }

}

class printEven implements Runnable {
    Num num;

    public printEven(Num num) {
        this.num = num;
    }

    public void run() {
        while (num.i < 100) {
            synchronized (num) {
                System.out.println(Thread.currentThread().getName() + "-->" + num.i++);
                num.notify();
                try {
                    if (num.i < 100) {
                        num.wait();
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        }
    }
}

class printOdd implements Runnable {
    Num num;

    public printOdd(Num num) {
        this.num = num;
    }

    public void run() {
        while (num.i < 100) {
            synchronized (num) {
                System.out.println(Thread.currentThread().getName() + "-->" + num.i++);
                num.notify();
                try {
                    if (num.i < 100) {
                        num.wait();
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        }
    }
}

class Num {
    int i =0;
}

 

posted @ 2020-06-04 09:28  我们村里的小花儿  阅读(190)  评论(0编辑  收藏  举报