线程中sleep()和wait()有何区别,各有什么含义 ?

2017-03-25  本文已影响0人  Jacksimo

区别:

(1)sleep()不会释放资源,wait()会释放资源;

(2)sleep()是Thread类里的函数,wait()是Object类里的函数;

(3)sleep()可以在任何地方调用,wait()只能在同步方法或者同步代码块中调用(否则会抛IllegalMonitorStateException异常);

含义:

sleep():使当前线程暂停执行指定的一段时间,但监视状态依然保持,过了指定的时间会自行恢复运行状态。

wait():使当前线程暂停执行,同时释放对象监视器的所有权,直到另一个和它有相同对象监视器的线程调用notify()或者notifyAll()唤醒它,再恢复运行状态。

上一篇 下一篇

猜你喜欢

热点阅读