【校招VIP】操作系统考点之sleep和wait

考点介绍:

多线程可以说是进阶必备的知识点,也是面试中必备的考点。

可能不少人能对多线程说上一二,但这还远远不够,如果碰到比较有经验的面试官再继续追问,很可能会被吊打。

相关题目及解析内容可点击文章末尾链接查看!

一、考点试题

1.关于sleep()和wait(),以下描述错误的一项是()

A.sleep是线程类(Thread)的方法,wait是Object类的方法

B.Sleep不释放对象锁,wait放弃对象锁

C.Sleep暂停线程、但监控状态任然保持,结束后会自动恢复

D.Wait后进入等待锁定池,只针对此对象发出notify方法后获取对象锁进入运行状态

解答:正确答案是 D

分析:针对此对象的notify方法后获取对象锁并进入就绪状态,而不是运行状态......

2.sleep和wait方法有什么区别?

解答:wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException。 如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep/join......

3.为什么wait要定义在Object中,而不定义在Thread中?

解答:线程为了进入临界区(也就是同步块内),需要获得锁并等待锁可用,它们并不知道也不需要知道哪些线程持有锁,它们只需要知道当前资源是否被占用,是否可以获得锁,所以锁的持有状态应该由同步监视器来获取......

4.阿里面试题:wait为什么一定要写在同步块中?

解答:第一点:wait 会引起lost wake up问题,就是如果wait 和 notify写在同一个synchronized对象中话,会出现发送notify的之后,另外一个该对象的才刚刚调用wait方法,这就导致调用wait的对象一直无法被显式唤醒......

二、考点文章

leep( ) 和 wait( ) 的这5个区别,你知道几个?

sleep(休眠) 和 wait(等待) 方法是 Java 多线程中常用的两个方法,它们有什么区别及一些该注意的地方有哪些呢?下面给大家一一分解......

三、考点视频

进程和线程的关系

一个程序至少有一个进程,一个进程至少有一个线程,线程的划分尺度小于进程,使得多线程程序的并发性高......

移动端链接:https://m.xiaozhao.vip/dTopic/detail/1144

PC端链接:https://xiaozhao.vip/dTopic/detail/1144

posted @   校招VIP  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-09-01 【校招VIP】[产品][一本][6分]简历原则上写一页
2022-09-01 【校招VIP】[Java][二本][5分]注意简历布局,突出项目重点
2022-09-01 【校招VIP】[产品][一本][7分]进一步描述用户的痛点和画像
2022-09-01 【校招VIP】[Java][二本][5分]开发岗简历项目最好有两个
2022-09-01 【校招VIP】[java][一本][6分]简历板式的选择需要多加考虑
2022-09-01 【校招VIP】[前端][二本][6分]项目内容描述要更加细致
2022-09-01 【校招VIP】[前端][二本][7分]简历样式符合一线校招要求
点击右上角即可分享
微信分享提示