关于Java线程等待唤醒机制的一个问题 boolean flag = false;改为volatile boolean flag = false; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的看法,楼主参考:问题就是当wait()结束后,程序从哪接着执行?正常情况下,wait()结束,应该执行else语句块里的内容,但你把它放在else里,它就不执行了,跳过了赋值语句。另外,这种情况下最好用while,不用if,某些场合会出问题。 你说的很对。今天我看生产者和消费者的时候,理解了昨天的问题。确实是你说的那样,当一个线程从wait()中唤醒了后,是直接往下运行,这个时候如果我加了else的话,直接就从else上面跳过去了,虽然此刻flag=false,接着往下运行后此刻的值还是原来那个值,num的值转变了,结果还是之前的值,不是没变,而是跳过去了。所以,这里不能加else。 怎么验证float和char的取值范围 char x=y; 这句代码为什么不能通过呢? swing窗体拖动 jdk API内部是如何实现的 GUI的那个exitbutton 帮忙看一眼 难道做这方面的人就这么少 请问怎么把gif格式的文件转换成png格式的文件? Java 业务中获得pojo列表方法 命名 用list*** 还是get***List socket 服务端 长连接问题 3个以上JSplitPane相互包含,如何消除包含分割线的影响 java事件响应,没有main方法
问题就是当wait()结束后,程序从哪接着执行?正常情况下,wait()结束,应该执行else语句块里的内容,但你把它放在else里,它就不执行了,跳过了赋值语句。
另外,这种情况下最好用while,不用if,某些场合会出问题。