首页 新闻 搜索 专区 学院

2020-09-15:java里的wait()和sleep()的区别有哪些?

0
悬赏园豆:5 [已解决问题] 解决于 2020-10-09 11:20

2020-09-15:java里的wait()和sleep()的区别有哪些?#福大大架构师每日一题#

福大大架构师每日一题的主页 福大大架构师每日一题 | 初学一级 | 园豆:2
提问于:2020-09-15 07:31
< >
分享
最佳答案
0

相同点

1.它们都可以让线程阻塞。
2.它们都可以响应 interrupt 中断:在等待的过程中如果收到中断信号,都可以进行响应,并抛出 InterruptedException 异常。

不同点

1.获取锁:wait 方法必须在 synchronized 保护的代码中使用,而 sleep 方法并没有这个要求。
2.释放锁:在同步代码中执行 sleep 方法时,并不会释放 monitor 锁,但执行 wait 方法时会主动释放 monitor 锁。
3.设置时间:sleep 方法中会要求必须定义一个时间,时间到期后会主动恢复,而对于没有参数的 wait 方法而言,意味着永久等待,直到被中断或被唤醒才能恢复,它并不会主动恢复。
4.所属类:wait/notify 是 Object 类的方法,而 sleep 是 Thread 类的方法。

收获园豆:5
天门道人 | 菜鸟二级 |园豆:249 | 2020-10-09 11:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册