相同点:
1.wait和sleep方法都可以使线程进入阻塞状态
2.wait和sleep方法均是可中断方法,被中断后都会受到中断异常
不同点:
1.所属类不同:wait是Object的方法,而sleep是Thead特有的方法
2.关于锁的释放:wait 会释放锁,sleep 睡觉了,抱着锁睡觉,不会释放!
3.使用位置不同:wait方法的执行必须在同步代码块中进行,而sleep则可以在任何位置
4.sleep方法短暂休眠之后会主动退出阻塞,而wait方法(没有指定等待的时间)则需要被其他线程中断后才能退出阻塞
注意:看过JUC源码的可以看出wait和sleep都+需要捕获异常!!!
原文:https://www.cnblogs.com/langzipeng/p/13200109.html