{
while(true)
{
System.out.println(q.name + "---->" + q.sex);
}
}
}
public class ThreadCommunation
{
public static void main(String [] args)
{
Q q=new Q(); //将引用传递过去
new Thread(new Producer(q)).start();
new Thread(new Consumer(q)).start();
}
}
在这里Producer和Consumer访问的是同一个Q对象
可以发现在这里一切都是正常的结果,但假如在这里将某一线程延时的话,如下所示:
class Producer implements Runnable
{
Q q=null;
public Producer(Q q)
{
this.q=q;
}
public void run()
{
int i=0;
while(true)
{
if(i==0)
{
q.name="张孝祥";
//加入此段代码
try
{
Thread.sleep(10) ;
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
q.sex="男";
}
else
{
q.name="陈琼";
q.sex="女";
}
i=(i+1)%2;
}
共21页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21