据我所了解,您编写的 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.是否可能运行一个无限循环而不会占用资源?比如...如果它只是循环自己。或者只是sleep(1)。
无限循环和CPU资源对我来说是个谜。
poll(2)
(或者旧的、几乎废弃的select(2)
)。 - Basile Starynkevitch