首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
wait方法底层原理
[问答题]
请你讲讲wait方法的底层原理
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(56)
分享
纠错
4个回答
添加回答
0
西瓜同学🏀
object中的方法,可以暂停线程,期间会释放对象锁,不像sleep方法,线程休眠期依然持有锁,wait方法的线程,必须调用notify或notifyAll方法唤醒线程!
发表于 2019-05-05 13:25:18
回复(0)
更多回答
9
forevergorilla
wait方***将当前线程放入wait set,等待被唤醒,并放弃lock对象上的所有同步声明。
1、将当前线程封装成ObjectWaiter对象node;
2、通过
ObjectMonitor::AddWaiter
方法将node添加到_WaitSet列表中;
3、通过
ObjectMonitor::exit
方法释放当前的ObjectMonitor对象,这样其它竞争线程就可以获取该ObjectMonitor对象。
4、最终底层的park方***挂起线程;
(最后与之对应的
notify方法
)
会随机唤醒
_WaitSet中随机一个线程
发表于 2019-06-15 11:53:03
回复(2)
2
猎码
object中的方法,可以暂停线程,期间会释放对象锁,不像sleep方法,线程休眠期依然持有锁,wait方法的线程,必须调用notify或notifyAll方法唤醒线程!
发表于 2019-02-02 17:05:03
回复(1)
0
一切都是浮云丶
这种题感觉没啥实际意义
发表于 2020-07-01 19:44:01
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
Java工程师
上传者:
小小
难度:
4条回答
56收藏
7643浏览
热门推荐
相关试题
3.下列关于表中西部省市区2006...
资料分析
言语理解与表达
资料分析
评论
(1)
4.该校1997年男女教师的比例为...
资料分析
言语理解与表达
资料分析
评论
(1)
计算机在工作过程中,若突然停电,(...
计算机常识
普及
C++
Pascal
选择题
评论
(1)
来自
NOIP2008初赛普及组
Mysql中表student_in...
数据库
SQL
评论
(1)
SQL中,下列涉及空值的操作不正确...
SQL
评论
(0)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题