现在有一些我一直想知道的事情:sleep()是如何实现的?
如果只是使用操作系统中的API,那么API是如何制作的?
这一切都归结为在CPU上使用特殊的机器代码吗?那个CPU是否需要一个特殊的协处理器或其他小玩意,没有它你就不能睡觉()?
睡眠()的最着名的化身在C语言中(更准确地说,在C编译器附带的库中,例如GNU的libc),尽管现在几乎每种语言都有它的等价物,但是在某些语言中实现了睡眠(认为Bash)不是我们在这个问题上看到的......
编辑:在阅读了一些答案之后,我看到该进程被置于等待队列中.从那里,我可以猜出两种选择
答案只提到备选1.因此,我问:这个计时器如何表现?如果这是一个让内核唤醒进程的简单中断,那么内核如何要求定时器"在140毫秒内唤醒我,以便我可以将进程置于运行状态"?