藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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能寫出簡單的例子給大家用
方便大家學習
這樣也很不錯啊
而且大家也不是直接抄這裡的
回去也會想想的



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com