多线程学习之wait()和sleep()的区别

1.首先wait()方法同notify()、notifyAll()是属于Object类中的方法,而sleep(long millis)是Threed类中的方法

2.wait()方法只能在同步方法或同步代码块中使用,wait()会使当前线程放弃对象锁,当前线程会被挂起,需要对象锁实例调用notify或notifyAll唤醒,唤醒后当前线程进入就绪状态,等待cup分配时间片,

sleep(long millis)同样会使当前线程被挂起,但不释放系统资源,其它线程访问该资源时会被阻塞,直到线程时间到,重新被cup分配时间片,释放资源。

3.sleep会抛出异常,而wait()方法不会。

posted @ 2021-04-02 13:07  vijayxu  阅读(183)  评论(0编辑  收藏  举报