为了账号安全,请及时绑定邮箱和手机立即绑定

Sleep()、suspend()和wait()之间有什么区别?

Sleep()、suspend()和wait()之间有什么区别?

正在回答

1 回答

Thread.sleep()使当前线程在指定的时间处于“非运行”(Not Runnable)状态。线程一直持有对象的监视器。比如一个线程当前在一个同步块或同步方法中,其它线程不能进入该块或方法中。如果另一线程调用了interrupt()方法,它将唤醒那个“睡眠的”线程。

注意:sleep()是一个静态方法。这意味着只对当前线程有效,一个常见的错误是调用t.sleep(),(这里的t是一个不同于当前线程的线程)。即便是执行t.sleep(),也是当前线程进入睡眠,而不是t线程。t.suspend()是过时的方法,使用suspend()导致线程进入停滞状态,该线程会一直持有对象的监视器,suspend()容易引起死锁问题。

object.wait()使当前线程出于“不可运行”状态,和sleep()不同的是wait是object的方法而不是thread。

这回答都是一些文字来的,没有代码解释哦,哈哈!!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Sleep()、suspend()和wait()之间有什么区别?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信