本帖最后由 张聪珉 于 2013-8-30 13:25 编辑
- class Res
- {
- private String name;
- private String sex;
- private boolean flag = false;
- public synchronized void set(String name,String sex)
- {//俩线程,t1设置t2取,当俩线程第一次启动的时候t1进来设置完了之后,假如又抢到执行权,再次进来设置,判断标志为真等待了,这个时候t1持有了锁,t2怎么能取得了值呢?
- if(flag)
- try{this.wait();}catch(Exception e){}
- this.name = name;
-
- this.sex = sex;
- flag = true;
- this.notify();
- }
- public synchronized void out()
- {
- if(!flag)
- try{this.wait();}catch(Exception e){}
- System.out.println(name+"........"+sex);
- flag = false;
- this.notify();
- }
复制代码 |