文章标题

来源:互联网 发布:2015淘宝双十一销售额 编辑:程序博客网 时间:2024/06/14 13:24
package day5;public class WaitNotify {    public static void main(String[] args) {        MyserviceNew my = new MyserviceNew();        ThreadM th1 = new ThreadM(my);        th1.start();        ThreadN th2 = new ThreadN(my);        th2.start();    }}class MyserviceNew{    public static int value = 0;    //false代表前一个线程都在等待该线程打印       boolean flag =false;}class ThreadM extends Thread{    MyserviceNew myservice;    public ThreadM(MyserviceNew myservice) {        this.myservice = myservice;    }    @Override     public void run() {        synchronized(myservice) {            while(MyserviceNew.value<100) {                //System.out.println("even");                if(!myservice.flag) {                    MyserviceNew.value++;                    System.out.println("奇数"+MyserviceNew.value);                    myservice.flag = true ;                    myservice.notify();                    try {                        myservice.wait();                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }else {                    try {                        myservice.wait();                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        }    }}class ThreadN extends Thread{    MyserviceNew myservice;    public ThreadN(MyserviceNew myservice) {        this.myservice = myservice;    }    @Override    public void run() {        synchronized(myservice) {            while(MyserviceNew.value<100) {                //System.out.println("odd");                if(myservice.flag) {                    MyserviceNew.value++;                    System.out.println("偶数"+MyserviceNew.value);                    myservice.flag = false;                    try {                        myservice.notify();                        myservice.wait();                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                    //myservice.flag = false;                }else {                    try {                        myservice.wait();                    } catch (InterruptedException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }            }        }    }}
原创粉丝点击