Object.wait()和Thread.sleep()的区别:
-
wait():
-
当前线程必须拥有此对象监视器,该线程发布对此监视器的所有权并等待。即,调用此方法的时候线程的锁会被解开;
-
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
-
notify():唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程(多个wait()后的等待线程中挑一个唤醒)。
-
notifyAll():唤醒此对象监视器上等待的所有线程。
-
-
-
sleep():
-
在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。该线程不丢失任何监视器的所属权。即,此方法并不会让线程解锁,在线程进行休眠的时候会持有锁
-