sleep方法和wait()的异同
1.相同点:一旦执行方法,都可以使得当前线程进入堵塞状态
2.不同点:1)两个方法声明位置不同:sleep是在Threa类中的方法,类似于yield()也是Threa类中的方法,wait()是在Object类中的方法
2)调用的要求不同:sleep()可以在任何需要的场景下调用。wait()必须在同步代码块中调用
3)关于是否释放同步监视器:两个都在同步代码块和同步方法时,sleep()不释放同步监视 器,但是wait()释放同步监视器。
解释:其实他们的不同点在于他们所处的类的位置不同,wait() 是在obj下的,所以可以在任何场景下调用,因为objec是任何类的父类,但是sleep()是在Thread类下的,所以其只能在Thread类及其子类下调用。具体可以建议大家看看源码。