class Ren
{
private String name;
private String sex;
boolean b=false;
public synchronized void set(String name,String sex)
{
if(b)
try{this.wait();}catch(Exception e){}
this.name=name;
this.sex=sex;
b=true;
this.notify();
}
public synchronized void out()
{
if(!b)
try{this.wait();}catch(Exception e){}
System.out.println(name+sex);
b=false;
this.notify();
其中的BOOLEAN b 在私有成员中已经定义成false .if(b)
try{this.wait();}catch(Exception e){}
我理解的意思是如果为false 则等待 ,下面的if(!b)
try{this.wait();}catch(Exception e){}
意思为如果为非false 即true 则等待.
要是这么理解我就搞不通了 。
还有一种理解为 if(b)
try{this.wait();}catch(Exception e){}
b 默认为TRUE, 而成员定义的时候为false 所以 if(b)则不用等待。
=====我的理解对不对 大神们帮帮忙 这点我看视频好几遍了 一直没搞清楚 Java多线程boolean
if()括号里条件表达式结果为true,if后面的语句或语句块才会执行
如b=false if(b){...},{}里的语句就不会执行。。这有什么不能理解的。。