望赐教,谢谢!

解决方案 »

  1.   

    要仔细看下,sleep(),wait()的区别。lock只是lock这个锁!
      

  2.   

    千万不要带着锁用sleep()去睡觉。
      

  3.   

    千万不要带着锁用sleep()去睡觉。这样多线程的优势几乎给“消灭”了,而且弄不好,容易造成“死锁”。不要这样做。这不是个好的程序代码。
      

  4.   

    sleep()---只是让线程休眠一段时间,那段时间过后线程就会执行队列,如果有现成的资源可以马上进行操作;
    wait()----线程一旦wait后,就进入等待队列中,直到notify或者notifyAll后,才进入执行队列;
    需要加锁的只是那些共享资源,有多个线程用到时,而且可能会改变共享资源的状态时才加锁
      

  5.   

    The thread does not lose ownership of any monitors. 
    你就把它看成没调用过sleep 在monitors ownership这点上保持原状
      

  6.   

    不要带着用sleep()去睡觉.sleep()是用于没有锁时去睡觉。这样会保持多线程的优点。带有锁时不能这么干,而要换成:wait().