|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看 |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
usleep |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
select也可以 |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
[code]#include <stdio.h>;
#include <sys/types.h>;
#include <sys/time.h>;
#include <unistd.h>;
int main(void)
{
struct timeval tm;
int retcode;
tm.tv_sec = 10;
tm.tv_usec = 20; /* 20ms */
fprintf(stderr, "sleeping for 20ms\n");
retcode = select(0, NULL, NULL, NULL, &tm);
if (-1 == retcode)
{
perror("select() error");
exit(0);
}
if (0 == retcode)
{
fprintf(stderr, "wake up after 20ms\n");
}
return(0);
}[/code] |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
謝謝uiibono,非常感謝! |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
tm.tv_sec = 10;
tm.tv_usec = 20;
不是吧?這是20ms嗎? |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
是20微秒 |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
10毫秒+20微秒 |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
chdonald、無雙、odin_free 說得都對,
不好意思誤人子弟了,sorry! |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
不好意思誤人子弟了,sorry!
樓上,為什麼要自責呢!
時間是可以根據需要改變的。你隨意的寫,是對的,但是使用者隨意的用,可能就不對了!^_^ |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
我之所以這麼問是因為我以前在用SELECT,ALARM等設置超時時好像感覺不是精確的時間,不知道和系統時鐘的滴答有什麼關係 |
如何使線程sleep小於1秒,比如20毫秒.那位大哥給段代碼看看
因為普通系統都不是實時系統
進程調度也是需要時間的
所以這裡得到的定時都不很準確
如果想很準確
那麼需要在實時系統上
另外uiibono能寫出簡單的例子給大家用
方便大家學習
這樣也很不錯啊
而且大家也不是直接抄這裡的
回去也會想想的 |
| |