「每天一道面试题」sleep方法和wait方法有什么区别?
sleep方法是Thread类的静态方法,让调用线程进入休眠状态,同时将执行机会让给其他线程,等到休眠时间结束后线程进入就绪状态,抢占CPU获取执行机会。但是,如果当前线程拥有锁,Thread.sleep不会让线程释放锁。
wait方法是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的锁,使其它线程能够访问,需要通过notify、notifyAll方法来唤醒等待的线程。
sleep方法是Thread类的静态方法,让调用线程进入休眠状态,同时将执行机会让给其他线程,等到休眠时间结束后线程进入就绪状态,抢占CPU获取执行机会。但是,如果当前线程拥有锁,Thread.sleep不会让线程释放锁。
wait方法是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的锁,使其它线程能够访问,需要通过notify、notifyAll方法来唤醒等待的线程。