请说明一下sleep() 和 wait() 有什么区别?
sleep是Thread类的方法,导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时候会自动恢复。
调用sleep不会释放对象锁。
wait是Object类中的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify或notifyAll方法后本线程才会进入对象锁定池准备获得对象锁进入运行状态。
wait会释放锁。
a772304419 ©著作权
sleep是Thread类的方法,导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时候会自动恢复。
调用sleep不会释放对象锁。
wait是Object类中的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify或notifyAll方法后本线程才会进入对象锁定池准备获得对象锁进入运行状态。
wait会释放锁。
都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩.;sleep()是
(1)Error类和Exception类都继承自Throwable类。Error的继承
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M