有没有一个功能,只是睡觉。时间量不是问题。 应该使用什么方法来保证计算机性能不受干扰?什么是在c中任意时间“睡眠”的最有效方法?
回答
假设您正在使用Linux平台,则有一个标准的C函数可以睡眠几微秒。
#include <unistd.h>
unsigned int usec;
...
usleep(usec);
当Sleep被调用时,程序从运行状态退出并在睡眠时间结束时重新进入就绪状态,因此不影响CPU时间。其他进程/线程可以在那时利用CPU。 如果usleep
上不可使用Unix的变种,或者,你可以使用sleep
是粒度在几秒钟内,
unsigned int sleep(unsigned int seconds);
'usleep'不是“标准C函数”。 –
'usleep()'是一个过时的POSIX函数;仍然在POSIX中有['sleep'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html)和['nanosleep'](http://pubs.opengroup.org/onlinepubs /9699919799/functions/nanosleep.html)。 'threads.h'也有['thrd_sleep'](http://port70.net/~nsz/c/c11/n1570.html#7.26.5.7);标准在C11中,但仍不支持glibc。 –
Unix变种通常提供sleep(seconds)
和usleep(microseconds)
。 usleep()
已弃用POSIX nanosleep()
。 Windows提供Sleep(sometime_in_millisecs)
;
的Windows:
#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);
}
请注意'usleep'已过时 –
@ErikW感谢您的信息! – Chimera
- 1. Python中最有效的睡眠方式是什么?
- 2. 什么是测量时间最有效的方法?
- 3. 实现睡眠函数JavaScript的最佳方式是什么?
- 4. 在iOS中跟踪时间的最有效/最精确的方式是什么?
- 5. 睡眠方法在时间精度上是否准确?
- 6. 甚至在深度睡眠期间在Android上运行计划任务的最佳方式是什么?
- 7. 从PostgreSQL的时间戳中提取日期的最有效方法是什么?
- 8. 在C++中读取文件最后一行的最有效方法是什么?
- 9. 在UNIX系统上调用睡眠(0)的效果是什么?
- 10. 什么是防止OS X睡眠的正确方法?
- 11. Box2D睡眠时间
- 12. C++ - 什么是测试空指针最有效的方法?
- 13. 什么是最高效的(读取时间)字符串搜索方法? (C#)
- 14. 在PHP中生成UUID的最有效方法是什么?
- 15. 在jquery中解析json的最有效方法是什么?
- 16. 在Haskell中记忆最有效的方法是什么?
- 17. 什么是在Javascript中反转数组的最有效方法?
- 18. 在CUDA中转换矩阵的最有效方法是什么?
- 19. 在VB 2008中循环SortedList的最有效方法是什么?
- 20. 在J中实现Haskell foldl1的最有效方法是什么?
- 21. 什么是在Python中遍历树的最有效方法?
- 22. 在VB.Net中点击链接的最有效方法是什么?
- 23. 在Python中实现并发的最有效方法是什么?
- 24. 在Scala中实现findOrCreate池的最有效方法是什么?
- 25. 在Java中输入数组的最有效方法是什么?
- 26. 在lua中忽略代码的最有效方法是什么?
- 27. 在声明方法时,C++中的= 0是什么意思?
- 28. Python:睡眠方法
- 29. 适当的睡眠方式在等待锁定期间睡眠
- 30. 在我的uiautomator测试中,什么是比睡眠更好的解决方法?
无论你的操作系统供应。 – ThingyWotsit
此外,由于OS sleep()样式调用的粒度大小为ms,因此时间量通常是个问题。较短的睡眠对于通用操作系统来说是尴尬的,而较长的睡眠时间则比较长。按照天数的顺序,更好地由进程外OS调度器提供,例如,像cron或Windows Scheduler。 – ThingyWotsit
以前有很多问题,[这里是一个](https://stackoverflow.com/questions/14812233/sleeping-for-milliseconds-on-windows-linux-solaris-hpux-ibm-aix-vxworks-wi) –