Java多线程-sleep()和wait()的异同?

相同点:

一旦执行方法,都可以使得当前的线程进入阻塞状态

不同点:

1.两个方法声明的位置不同:Thread类中声明sleep(),Object类中声明wait()

2.调用的要求不同:sleep()可以在任何需要的场景下调用。wait()必须使用在同步代码块或同步方法中

3.关于是否释放同步监视器:如果两个方法都使用在同步代码块或同步方法中,sleep()不会释放锁,wait()会释放锁

4.sleep()必须捕获异常,而wait()无需捕获异常

posted @ 2022-07-27 21:05  锦此  阅读(26)  评论(0编辑  收藏  举报