朋友分享的面试题,我也不会。
正常来说程序只有两种状态,一种是正在运行,另一种是运行完了,从这个角度考虑的话那程序宇宙里就不存在睡眠这种东西,唯一实现类似睡眠功能的就是执行一个需要花那么长时间的计算,占满 CPU 所以就“睡眠”了。
不过现代由于程序不是直接跑在硬件上,而是多加了一层操作系统,那么程序就可以要求操作系统挂起自己,到时间了再唤醒,由此实现了睡眠。但操作系统层面是如何搞定计时功能的呢?有没有熟悉底层原理的大佬分享一下,CPU 上是有个专门负责计时的硬件吗?印象里 CPU 听说过有固定频率的发生器,但是好像没听说过有基于这个发生器跑计时之类功能的硬件。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.