线程的sleep方法和wait方法,你会使用了吗

1、sleep方法是Thread类的静态方法;wait方法是Object的成员方法。它们都可以暂停执行线程,但是sleep方法没有释放锁,而wait方法释放了锁。

2、sleep(xxx)

调用sleep(xxx)会让当前线程暂停(又称此为“睡眠或休眠”)执行指定的时间xxx毫秒,xxx越大等待时间越长,比如:sleep(1000)将暂停1000毫秒执行,此时将执行机会让给其他线程,即把使用CPU的机会给其他线程,但该对象的锁依然保持,所以休眠时间结束后会自动恢复,即该线程回到就绪状态。

3、wait()

调用wait()方法,会使当前线程放弃对象的锁,即线程暂停执行,进入对象的等待池。

此时,只有调用该对象的notify()方法或notifyAll()方法,才能唤醒等待池中的线程进入等锁池,但线程只有再次获得对象的锁,才能进入就绪状态。

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐