网站建设知识,株洲网络问政平台,html模板素材,网站底部放置备案号转载自 Java多线程sleep和wait的区别#xff0c;总结得非常好我们都知道sleep是让线程休眠#xff0c;到时间后会继续执行#xff0c;wait是等待#xff0c;需要唤醒再继续执行#xff0c;那么这两种方法在多线程中的表现形态#xff0c;它们各有什么区别呢#xff1f;
…转载自 Java多线程sleep和wait的区别总结得非常好我们都知道sleep是让线程休眠到时间后会继续执行wait是等待需要唤醒再继续执行那么这两种方法在多线程中的表现形态它们各有什么区别呢
可以总结为以下几点。
使用上
从使用角度看sleep是Thread线程类的方法而wait是Object顶级类的方法。
sleep可以在任何地方使用而wait只能在同步方法或者同步块中使用。
CPU及资源锁释放
sleep,wait调用后都会暂停当前线程并让出cpu的执行时间但不同的是sleep不会释放当前持有的对象的锁资源到时间后会继续执行而wait会放弃所有锁并需要notify/notifyAll后重新获取到对象锁资源后才能继续执行。
异常捕获
sleep需要捕获或者抛出异常而wait/notify/notifyAll不需要。