分析&回答
1)sleep是线程类(Thread)的方法;wait是Object类的方法
2)sleep是使线程休眠,不会释放对象锁;wait是使线程等待,释放锁
sleep让出的是cpu,如果此时代码是加锁的,那么即使让出了CPU,其他线程也无法运行,因为没有得到锁;wait是让自己暂时等待,放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
3)调用sleep进入阻塞状态;调用wait进入等待状态,调用notify进入就绪状态
喵呜面试助手: 一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!