如题, 请不要把JDK文档的内容照搬上来,谢谢。

解决方案 »

  1.   

    void notify(): 唤醒一个正在等待该对象的线程。
    void notifyAll(): 唤醒所有正在等待该对象的线程。
      

  2.   

    “正在等待该对象”是指什么对象呢?一个有个All,一个没有,从英文语言上,或者从JDK文档上,谁都知道语文上的意思是什么,但问题是实际原理上是何区别呢?
      

  3.   

    操作系统学过没?学过就知道 记录型信号量只唤醒队列中的第一个。
    而信号量集的方式常常是唤醒所有说简单点打点比方
    假设2个队列 一个是某事件的阻塞队列,一个是就绪队列。notify,就是把由于`该事件阻赛的队列第一个唤醒,而notifyAll,就是把所有阻塞的都唤醒,
    唤醒,之后,是否能够到就绪队列,就要看具体的情况了(通常能够转移到就绪队列)
      

  4.   

    楼主还是先看看这两个方法涉及到的概念再来问吧 notify和notifyAll都是java多线程的部分,java提供了机制可以锁住对象(对象也是一种资源),当一个对象被一个线程访问时,这个对象能被锁住,这时其他要访问这个对象的线程就处于阻塞状态。但是如果线程调用了该对象的wait()方法,就会释放该对象的锁,并停止运行继续等待直到其他线程调用了这个对象的notify或notifyALL。但是,可能有好几个线程调用了该对象的wait同时等待,所以notify只是唤醒其中的一个(具体哪一个时由虚拟机的线程调度机制决定的)notifyAll唤醒所有线程。