A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© muffin 中级黑马   /  2015-8-16 18:25  /  1103 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求大神解答。
下面的多线程程序为什么不能做到交替打印。

11.png (74.88 KB, 下载次数: 17)

11.png

2.png (19.57 KB, 下载次数: 17)

2.png

3.png (97.7 KB, 下载次数: 17)

3.png

21 个回复

倒序浏览
你这个FLAG并没有什么作用啊!按你这个意思应该是这个值改变1次打印1次对吧。那你那个FLAG作用于2个方法应该正好相反啊。分别为!falg和flag才对
回复 使用道具 举报
黄蒙 发表于 2015-8-16 18:41
你这个FLAG并没有什么作用啊!按你这个意思应该是这个值改变1次打印1次对吧。那你那个FLAG作用于2个方法应 ...

打错了,输入信息的那个if语句的条件是flag==false。
回复 使用道具 举报
muffin 发表于 2015-8-16 18:50
打错了,输入信息的那个if语句的条件是flag==false。

改了之后还不行吗?
回复 使用道具 举报
黄蒙 发表于 2015-8-16 18:53
改了之后还不行吗?

不行,按你说的把条件改为!flag和flag了,还是会出现重复打印的现象。按理说应该打印一次之后flag改变了,线程不可能还能进入那个函数啊。
回复 使用道具 举报
黄蒙 发表于 2015-8-16 18:53
改了之后还不行吗?

我感觉问题出在了输入函数的那个else那里,如果把那个else删了,让输入线程强制等待,就能交替打印,但
我不明白为啥。
回复 使用道具 举报
黄蒙 中级黑马 2015-8-16 19:25:04
7#
muffin 发表于 2015-8-16 18:58
我感觉问题出在了输入函数的那个else那里,如果把那个else删了,让输入线程强制等待,就能交替打印,但
...

源码发来看下吧
回复 使用道具 举报
muffin 中级黑马 2015-8-16 20:28:37
8#
这是源文件。
我已经明白了。
就是因为没有强制等待引起的。
我连自己的分析也一起发了。

解答WaitAndNotify2.png (122.88 KB, 下载次数: 16)

解答WaitAndNotify2.png

新建文本文档 (2).rar

626 Bytes, 下载次数: 224

回复 使用道具 举报
muffin 中级黑马 2015-8-16 20:29:38
9#
muffin 发表于 2015-8-16 18:58
我感觉问题出在了输入函数的那个else那里,如果把那个else删了,让输入线程强制等待,就能交替打印,但
...

发了,非常感谢你能解答。
回复 使用道具 举报
flag这个变量最开始的赋值应该为false
回复 使用道具 举报
sl123 中级黑马 2015-8-16 22:16:10
11#
高手啊,希望自己以后也能这么厉害
回复 使用道具 举报
厉害,这个值得学习
回复 使用道具 举报
福娃(小白) 来自手机 中级黑马 2015-8-16 23:25:54
13#
大神…棒棒哒~~
回复 使用道具 举报
sl123 发表于 2015-8-16 22:16
高手啊,希望自己以后也能这么厉害

高手是在说我么。。。暂时感觉自己很菜。。
回复 使用道具 举报

哪里,才刚开始学。

点评

加油加油,你可以的哦,导师都有说过,大牛是学过的尽量少犯错。。  发表于 2015-8-20 07:02
回复 使用道具 举报
keviner 发表于 2015-8-16 23:20
厉害,这个值得学习

一起加油吧。
回复 使用道具 举报
问一下你这个编辑器怎么是绿色和黑色的,跟黑客帝国里似的,是什么编辑器啊?
回复 使用道具 举报
路过,看看,也学习一下!
回复 使用道具 举报
sl123 中级黑马 2015-8-19 21:17:10
19#
muffin 发表于 2015-8-18 22:32
高手是在说我么。。。暂时感觉自己很菜。。

是啊,我暂时还达不到这个水平呢?我要加油
回复 使用道具 举报
sven556677 发表于 2015-8-19 08:04
问一下你这个编辑器怎么是绿色和黑色的,跟黑客帝国里似的,是什么编辑器啊? ...

我用的是ediplus
在里面有个设置,是个对勾的图标,点进去可是设置背景颜色和字体颜色还有各种关键字的颜色。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马