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();
}
}