Java中的Wait和Sleep之间的区别
Wait()-线程释放此监视器的所有权,并等待直到另一个线程通知该对象的监视器上正在等待通过调用notify()
方法或notifyAll()
方法唤醒的线程。然后,线程等待,直到它可以重新获得监视器的所有权并恢复执行。
Sleep()-此方法使当前正在执行的线程进入休眠状态(暂时停止执行)达指定的毫秒数。该线程不会失去任何监视器的所有权。它将在指定的时间内将当前线程发送到“不可运行”状态。
notify()
,notifyAll()
从对象SynchronizedMap的示例
synchronized(lockedObject){ while(condition == true){ lockedObject.wait() //releases lockedObject lock } Thread.sleep(100); //puts current thread on Sleep }