在学习线程之间通信的时候 有一串代码和视频里老师写的不一样,就是if后边老师没有加{大括号},我加了,可是运行结果就是不一样,代码如下:
这是我写的:
- public synchronized void set(String name,String sex)
- {
- if (flag)
- {
- try{this.wait();}catch(Exception e){}
- }
- else
- {
- this.name =name;
- this.sex = sex;
- flag = true;
- this.notify();
- }
-
- }
复制代码 老师写的是这样的:
- public synchronized void set(String name,String sex)
- {
- if (flag)
- try{this.wait();}catch(Exception e){}
- this.name =name;
- this.sex = sex;
- flag = true;
- this.notify();
- }
复制代码
运行结果完全不一样,,,我很郁闷,,有大神知道吗?
|
|