据我了解,您编写的 Linux 守护程序在无限循环中侦听请求。
就像是..
int main() {
while(1) {
//do something...
}
}
参考: http ://www.thegeekstuff.com/2012/02/c-daemon-process/
我读到睡眠程序会使其进入等待模式,因此它不会占用资源。
1.如果我希望我的守护进程每 1 秒检查一次请求,以下是否会消耗资源?
int main() {
while(1) {
if (request) {
//do something...
}
sleep(1)
}
}
2.如果我取消睡眠,是否意味着CPU消耗会增加100%?
3.不吃资源可以无限循环吗?说..如果它什么都不做,只是循环自己。或者只是睡觉(1)。
无尽的循环和 CPU 资源对我来说是个谜。
原文由 resting 发布,翻译遵循 CC BY-SA 4.0 许可协议
有一个更好的选择。
您可以只使用 semaphore ,它在循环开始时保持阻塞,并且您可以在希望循环执行时向 semaphore 发出信号。
请注意,这不会吃掉任何资源。