C中的sleep()函数是主动等待还是被动等待?
因为它停止了线程的运行,所以它是否总是检查时间是否已过,如:

while(1){
//need to wake?
}

或者是被动的:
alarm(sec);

pause(); // wait for the alarm and sleeping?

系统是unix。

最佳答案

sleep不是标准的c库函数。
如果您的平台有它,它几乎肯定会调用操作系统来挂起线程(也就是说,在您的符号中,是被动的)。
它不会采用while(1){}类型的习惯用法,因为这会不必要地烧掉cpu。

关于c - 功能sleep()在被动状态下是主动的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37565439/

10-09 13:12