-
Java中线程生命周期图如下
线程生命周期 - sleep() 和 wait() 方法的区别?
1 sleep方法是Thread类的静态方法, wait方法是Object类的成员方法
2 sleep方法使当前线程暂停执行指定的时间,让出cpu给其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep方法后,线程不会释放对象锁;
而当调用wait方法时,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池处于准备状态。
3 sleep方法有可能会抛出异常,所以需要进行异常处理;wait方法不需要处理
4 sleep() 方法可以在任何地方使用,wait()方法只能在同步方法和同步代码块中使用
网友评论