黑马程序员技术交流社区
标题:
线程通信时候一个问题,求解惑
[打印本页]
作者:
插兜
时间:
2015-9-17 15:49
标题:
线程通信时候一个问题,求解惑
在做线程通信练习时候,有个生产者消费者的例子。在if语句之后,我加了个else{},然后验证时候,结果一直都是Thread0线程的输出。
我想问下,如果if后面跟上else,是不是后面的flag=true和this.notify就不会再读,继续while循环,flag仍然是false。
private String name;
private int count=1;
private boolean flag=false;
public synchronized void set(String name)
{
while(true)
{
if(flag)
try{this.wait();}catch(Exception e){}
else
{
this.name=name+"--"+count++;
System.out.println(Thread.currentThread().getName()+"...生产者..."+this.name);
}
flag=true;
this.notify();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2