package Test;

public class PrintNumber {

    private int status = 1 ,cnt = 1;

    synchronized void print_odd() {
        while(cnt<100) {
            while (status == 2) {
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }

            System.out.printf("odd %d\n", cnt++);
            status = 2;
            notify();
        }
    }
    synchronized void print_even(){
        while (cnt<100){
            while (status == 1) {
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
            System.out.printf("even %d\n", cnt++);
            status = 1;
            this.notify();
        }
    }



    public static void main(String[] args) {
        PrintNumber test = new PrintNumber();

        Thread t1  = new Thread(()-> {
           test.print_odd();
        });

        Thread t2 = new Thread(()-> {
            test.print_even();
        });
        t1.start();
        t2.start();


    }
}

 

posted on 2024-11-07 14:43  towboat  阅读(0)  评论(0编辑  收藏  举报