首页
题库
面试
求职
学习
竞赛
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收藏
7697浏览
热门推荐
相关试题
一般情况下,MELF型片式陶瓷电容...
元器件
评论
(1)
下列关于转置卷积的说法,正确的有( )
深度学习
评论
(1)
语言模型是自然语言处理中一个重要的...
机器学习
评论
(1)
以下Verilog代码描述了两个同...
Verilog
评论
(1)
以下使用生成器的数据管道代码中,若...
Python
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题