关于Java线程等待唤醒机制的一个问题 boolean flag = false;改为volatile boolean flag = false; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的看法,楼主参考:问题就是当wait()结束后,程序从哪接着执行?正常情况下,wait()结束,应该执行else语句块里的内容,但你把它放在else里,它就不执行了,跳过了赋值语句。另外,这种情况下最好用while,不用if,某些场合会出问题。 你说的很对。今天我看生产者和消费者的时候,理解了昨天的问题。确实是你说的那样,当一个线程从wait()中唤醒了后,是直接往下运行,这个时候如果我加了else的话,直接就从else上面跳过去了,虽然此刻flag=false,接着往下运行后此刻的值还是原来那个值,num的值转变了,结果还是之前的值,不是没变,而是跳过去了。所以,这里不能加else。 菜鸟请求援军急啊, actionlistener问题 在 帮小女子看看这些 我写的是否正确。谢谢 Thread类中能运行线程体的方法是 如何用Java编程模拟一个网络,并监测其丢包率? 〔急〕给一个正方形里的四个等腰三角形填上不同的颜色 Graphics类大家用得多吗?用过的大哥请留下言 求计算机专业的本科学士学位的教学课程计划,详细一点的 我想自学 谢谢 为何会出现这个错误? 如何在j2se中实现jdbc2 3个以上JSplitPane相互包含,如何消除包含分割线的影响 java事件响应,没有main方法
问题就是当wait()结束后,程序从哪接着执行?正常情况下,wait()结束,应该执行else语句块里的内容,但你把它放在else里,它就不执行了,跳过了赋值语句。
另外,这种情况下最好用while,不用if,某些场合会出问题。