有人担心 sleep()
和 alarm()
的组合吗?我一直听说这样做很糟糕,因为它们可能都依赖同一个计时器并相互冲突。
我认为使用 alarm()
容易出错,希望看到不同的解决方案或任何想法,以便我可以使用与 sleep 非常兼容的东西从我的代码中删除警报。
最佳答案
当您使用 sleep
,进程进入休眠状态的时间以毫秒为单位,并且 alarm
将返回 sleep
之后的剩余秒数.一个alarm
在提到的时间后终止进程。
是的,sleep
和 alarm
将使用相同的计时器。因此,我们有责任计算 sleep()
时的剩余秒数。在 alarm()
之后发生.
例如: 如果你使用
alarm(5);---------------> An alarm is set for 5 seconds.
sleep(3);---------------> Process goes to sleep state for 3 seconds.
alarm(7);---------------> This alarm returns the seconds remaining after sleep is set i.e it returns 2.
然后 alarm
设置为 7 秒。当进程时间超过 12 秒时,进程在 12 秒后完全终止。
如果sleep
时间比较多,
示例 2:
alarm(5);
sleep(7);
然后进程在 5 秒后终止。
关于c - linux 中的闹钟和 sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999278/