Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
话题被移动
该话题已被移动 - littledeer1974 , 2004-10-27 22:53
如果您尚不清楚该话题被移动的原因,请参考论坛规则以及本版公告或者联系本版版主。
作者 求教:一个多线程执行过程的疑问,关于sleep()方法的相关。
drxjava





发贴: 21
积分: 0
于 2004-10-26 20:52 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
{请您活用编辑功能使您的内容更易读,谢谢}
先看看下面的代码:
class Producer implements Runnable
{
Q q;
public Producer(Q q)
{
this.q=q;
}
public void run()
{
int i=0;
while(true)
{
if(i==0)
{
q.name="张三";
try{Thread.sleep(1);}catch(Exception e){}
q.sex="男";
}
else
{
q.name="李四";
q.sex="女";
}
i=(i+1)%2;
}
}
}
class Consumer implements Runnable
{
Q q;
public Consumer(Q q)
{
this.q=q;
}
public void run()
{
while(true)
{
System.out.print(q.name);
System.out.println(":"+q.sex);
}
}
}
class Q
{
String name="unknown";
String sex="unknown";
}
class ThreadCommunications
{
public static void main(String [] args)
{
Q q=new Q();
new Thread(new Producer(q)).start();
new Thread(new Consumer(q)).start();
}
}

------------------------------------------------------------
运行结果是:开始是输出:“张三:unknown”几次以后就输出为:“张三:女”,而且一直这样执行下去好多的。

疑问1:为什么线程完成了sleep()以后,张三后面的“男”没有机会执行呢?就直接的到了“女”呢?难道是try{Thread.sleep(1);}catch(Exception e){}后面的
  q.sex="男";
没有得到执行吗?怎么会呢?
疑问2:为什么 它:else
{
  q.name="李四";
  q.sex="女";
}  

象是没有被执行似的呢?但是它应该是能够执行的呀!
请大家帮我找找原因呀!谢谢!:)


littledeer1974 edited on 2004-10-27 23:05


一个程序员的奋斗历程

话题树型展开
人气 标题 作者 字数 发贴时间
21902 求教:一个多线程执行过程的疑问,关于sleep()方法的相关。 drxjava 1427 2004-10-26 20:52
16125 Re:求教:一个多线程执行过程的疑问,关于sleep()方法的相关。 archonLing 356 2004-10-27 11:17
16405 Re:求教:一个多线程执行过程的疑问,关于sleep()方法的相关。 drxjava 103 2004-10-27 19:29
16031 Re:求教:一个多线程执行过程的疑问,关于sleep()方法的相关。 xxg0621 91 2004-11-13 17:29
16052 Re:求教:一个多线程执行过程的疑问,关于sleep()方法的相关。 roc8633284 111 2004-11-15 20:22
16282 Re:求教:一个多线程执行过程的疑问,关于sleep()方法的相关。 roc8633284 343 2004-11-15 20:43

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923