所有线程在一开始的时候访问下这个资源以后就不访问了,我需要达到的效果是:资源改变则通知所有线程并且让他们从新访问,不改变就不通知
volatile,synchronized不能起作用吧。我想另外建立个线程监听这个资源,并且执行通知其他线程。
可以不呢。刚学java 不久,高手们指点下。。

解决方案 »

  1.   

    把这个资源放在一个同步方法里,发生改变的时间,notifyAll();
      

  2.   

    java.util.Observer java.util.Observable 可以帮助你解决问题
      

  3.   

    有线程在一开始的时候访问下这个资源以后就不访问了,我需要达到的效果是:资源改变则通知所有线程并且让他们从新访问,不改变就不通知
    volatile,synchronized不能起作用吧。
    --------------------------------------------------------------------------------
    如果其他线程wait()在这个资源那里,就该资源notifyAll();
    java.util.Observer java.util.Observable 可以帮助你解决问题
    -------------------------------------------------------------------------
    楼上说的是JDK中对观察者模式的实现,如果是想通过注册通知的话,建议楼主去看看设计模式中的观察者模式.
      

  4.   

    e3002所说的标志位?不太明白怎么实现我的需求。。我的问题和我的需求提的有偏差,但是也差不多
    “如果其他线程wait()在这个资源那里,就该资源notifyAll();”
    我现在用的这个办法解决。各位给的资料下去查看,谢谢大家