所属类:
sleep()方法属于Thread类。
wait()方法属于Object类的一部分,因为在Java中所有的类都继承自Object。目的:
sleep()方法主要用于让当前正在执行的线程暂停指定的时间(让出CPU),但不释放对象锁。
wait()方法不仅让当前线程暂停执行(也让出CPU),而且会释放其持有的锁,通常用于线程间的通信。
锁的处理:
调用sleep()时,线程不会释放任何锁。
调用wait()时,线程会释放它持有的对象锁,使得其他线程可以有机会访问同步代码块。
唤醒条件:
sleep()方法暂停完成后,线程会自动唤醒并继续执行。
wait()方法则需要依靠notify()或notifyAll()方法被调用时才会进入对象锁定池准备获取锁定,继续执行。
异常处理:
sleep()方法在等待期间,如果线程的interrupt()方法被调用,会抛出InterruptedException。
wait()方法也会在等待期间因为interrupt()方法的调用或者notify()/notifyAll()方法的调用而抛出InterruptedException。使用场景:
sleep()方法通常用于暂停执行一段时间。
wait()方法用于多线程间的协作,比如在生产者-消费者问题中等待条件满足。简而言之,sleep()和wait()都可以暂停线程,但sleep()主要用于暂停一段时间,不释放锁;而wait()主要用于线程间的通信,调用时会释放锁,等待特定条件的唤醒。网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?