sleep() 和 wait() 有什么区别?
sleep() 和 wait() 有什么区别?
所属的类不同:sleep方法属于java.lang.Thread类的一个静态方法;wait方法属于java.lang.Object类的一个实例方法,由于Object类所有java类的父类,每一个java类都有wait方法。
资源的控制:sleep方法使得线程进入阻塞状态,线程会暂停执行,当前线程所控制的资源没 有释放;wait方法使得线程进入阻塞状态,线程会暂停执行,会释放前线程所控制的资源。
恢复不同:sleep方法当设置sleep的时间结束之后,当前线程会自动进入就绪状态,如果设置的时间没有结束,而强制唤醒,会进入异常;wait方法要恢复线程的运行需要调用notify/notifyAll方法来手动唤醒,使得线程进入就绪状态。