(多线程)OutPut2

来源:互联网 发布:淘宝菜筛 编辑:程序博客网 时间:2024/06/18 13:05
package duoxiancheng;class ResUp{private String name;private String sex;boolean flag=false;public synchronized void set(String name,String sex )//锁是this{if(flag)//搞清楚逻辑关系{this.name=name;this.sex=sex;this.flag=false;this.notify();try {this.wait();} catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}public synchronized void put()//同步this锁{if(!flag){System.out.println(this.name+"  "+this.sex);this.flag=true;this.notify();try {this.wait();} catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}}class PutUp implements Runnable{ResUp r;//建立引用,引用Res对象,对象属于Res;如果new就是建立对象,对象属于本类PutUp(ResUp r){this.r=r;}public void run(){int x=1;while(true)//不断输入{if(x==1)r.set("wanxi","nv");elser.set("陈鸿", "男");x=(x+1)%2;}}}class OutUp implements Runnable{ResUp r;OutUp(ResUp r){this.r=r;}public void run(){while(true)//不断输出r.put();}}public class OutPut2 {public static void main(String [] args){ResUp r=new ResUp();new Thread(new PutUp(r)).start();new Thread(new OutUp(r)).start();}}

0 0
原创粉丝点击