先看看tutorial.
那时有什么不清楚再问会好一些.

解决方案 »

  1.   

    这些都是关于线程的,主要是为了解决持有监视器钥匙的线程暂停等待另一线程完成时可能发生死锁的问题。wait()方法使调用线程等待,直到发生超时或另一线程调用同一对象的notify()或notifyAll()方法。wait() 方法的用法如下:wait()或wait(long timeoutPeriodInMilliseconds)前者等待被通知,后者等待超时或通知。线程调用wait()方法时,释放所持有的钥匙让另一等待线程进入监视区。notify()方法只唤醒一个等待线程,而notifyAll()唤醒所有等待该监视器的线程。注意,这些方法只能在监视区内调用。否则会输出一种RuntimeException类型的IllegaMonitorStateException异常状态。
    够详细清楚的吧。
      

  2.   

    总之wait()让线程等待,notify()和notifyall()激活某个等待线程,其实就是撤销该线程的中断状态,从而使他们有机会再次运行
      

  3.   

    有时会遇到如下问题,程序的一部分在写数据,另一部分读数据,但有时会出现读部分超前写部分,
    这就是典型的产生者/消耗者问题.
       .wait:是一个线程睡眠,直到在相同的对象上调用notify或notifyAll
       .notify:启动第一个在相同对象调用wait的线程
       .notifyAll:启动在相同的对象调用wait的所有线程