本帖最后由 HM汪磊 于 2013-3-23 10:43 编辑
class Res
{
String sex;
String name;
}
class InPut implements Runnable
{
private Res r;
InPut(Res t)
{
this.r=t;
}
public void run()
{
int x=0;
while(true)
{
synchronized(InPut.class)//同步代码块锁为对象,静态同步函数锁为类名.class.为什么这里同步代码块用类名.class也可以呢????
{
if(x==0)
{
r.name="mike";
r.sex="man";
}
else
{
r.name="丽丽";
r.sex="女女女女女女";
}
x=(x+1)%2;
}
}
}
}
class OutPut implements Runnable
{
private Res r;
OutPut(Res t)
{
this.r=t;
}
public void run()
{
while(true)
{
synchronized(InPut.class)
{
System.out.println(r.name+"....."+r.sex);
}
}
}
}
class Test99
{
public static void main(String[] args)
{
Res r=new Res();
InPut n=new InPut(r);
OutPut m=new OutPut(r);
Thread t1=new Thread(n);
Thread t2=new Thread(m);
t1.start();
t2.start();
}
}
|