sleep是线程类(Thread)的方法,wait是Object类的方法;
sleep不释放对象锁,wait放弃对象锁;
sleep暂停线程、但监控状态仍然保持,结束后会自动恢复;
wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。
sleep() 和 wait() 有什么区别?
notify()和 notifyAll()有什么区别?
notifyAll()会唤醒所有的线程,notify()之后唤醒⼀个线程。notifyAll() 调⽤后,会将全部线程由等待池移到锁池,然后参与锁的竞争,竞争成功则继续执⾏,如果不成功则留在锁池等待锁被释放后再次参与竞争。⽽ notify()只会唤醒⼀个线程,具体唤醒哪⼀个线程由虚拟机控制。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题