是否有一个只是睡觉的功能。时间量不是问题。 应该使用什么方法,以免计算机性能受到干扰?
答案 0 :(得分:2)
Unix变体通常提供sleep(seconds)
和usleep(microseconds)
。已弃用usleep()
以支持POSIX nanosleep()
。 Windows提供Sleep( sometime_in_millisecs )
;
视窗:
#include <windows.h>
#include <stdio.h>
int main() {
printf( "starting to sleep...\n" );
Sleep( 3000 ); // sleep three seconds
printf( "sleep ended\n" );
}
Linux(Unix):
#include <unistd.h>
//unsigned int sleep(unsigned int seconds);
int main() {
sleep( 3 ); // sleep 3 seconds
usleep( 3000000 ); // sleep 3 seconds more
return( 0 );
}
答案 1 :(得分:1)
假设您使用的是Linux平台,那么标准的C函数可以休眠几微秒。
#include <unistd.h>
unsigned int usec;
...
usleep(usec);
当调用Sleep时,程序从运行状态退出,并在睡眠时间结束时重新进入就绪状态,因此不会影响CPU时间。到那时,其他进程/线程可以利用CPU。
如果您使用的Unix变体上没有usleep
,则可以使用sleep
,粒度是以秒为单位,
unsigned int sleep(unsigned int seconds);