(多线程)OutPut

来源:互联网 发布:在哪里注册域名比较好 编辑:程序博客网 时间:2024/05/16 01:02
package duoxiancheng;class Res {String name;String sex;boolean flag=false;}class Put implements Runnable{Res r;Put(Res r){this.r=r;}public void run(){int x=1;while(true){synchronized(r){if(!r.flag){if(x==1){r.name="chenhong";r.sex="nv";}else{r.name="王";r.sex="男";}}r.flag=true;r.notify();try {r.wait();} catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}x=(x+1)%2;}  }}class Out implements Runnable{Res r;Out(Res r){this.r=r;}public void run(){while(true){synchronized(r){if(r.flag)System.out.println(r.name+"   "+r.sex);r.flag=false;r.notify();try {r.wait();} catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}}}public class  OutPut{public static void main(String[] args) {Res s=new Res();Put p=new Put(s);Out o=new Out(s);Thread d1=new Thread(p);Thread d2=new Thread(o);d1.start();d2.start();}}

0 0