调用wait()后,将释放对象所有的属性,直到遇到notify(),故而未立即返回,这只是我的个人观点

解决方案 »

  1.   

    后者吧
    你想,notify之后,被激活的线程不能立即有锁呀,
    必须出了synchronized语句块或方法,才能锁计数器减1
    被激活的线程发现锁计数器为0时,才能对此对象操作
      

  2.   

    应该是后者,因为在synchronized语句块里面,任何时候只能有一个线程的,只有调用notify的线程退出后,线程才具有抢占cpu的机会
      

  3.   

    1、有关概念是这样的:
    遇到notify(),运行系统立刻从等待池中任选一wait的线程进入寻找对象锁状态,
    2、因此我认为在第一点中并不能说是立刻返回,应当是该线程重新找回对象锁继续执行该方法。
    3、一般而言,在一个线程调用的synchronized方法中使用了wait后,需要另一个synchronized方法来notify()。
    4、对于一般性的编程,似乎没必要钻研得那么深入,只要记住以上第一点。
      

  4.   

    to qqbz(qqbz)
    人家写书耶!当然要深入写了
    我认为是后者,大家如果从锁计数器的角度考虑,
    就很清晰了
      

  5.   

    多谢各位的答复,本人非常感激,加一些分吧,可是不好意思,本人最多只能给100(该死的csdn,我一想到这一点就有气!)。to Iforgot(清风雨) :骂得好,骂得真好,不用给我面子,呵呵。