Java中sleep和wait的区别

2019-08-26 20:37:32 浏览数 (1)

1、sleep方法是Thread类的静态方法;

wait方法是Object类的成员方法

2、sleep方法使当前线程暂停执行指定的时间,让出cpu给其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep方法后,线程不会释放对象锁;

而当调用wait方法时,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池处于准备状态。

3、sleep方法有可能会抛出异常,所以需要进行异常处理;

wait方法不需要处理

4、sleep方法可以在任何地方使用;

wait方法只能在同步方法和同步代码块中使用

Java中线程的生命周期图谱如下所示:

0 人点赞