再論sleep延時

2021-09-25 14:37:42 字數 596 閱讀 9583

在做通訊專案的時候需要處理不同執行緒的資料流匹配問題,在加入sleep(second)延時函式後發現表現有點奇怪,仔細查閱api說明才了解到linux下sleep函式和windows下的不一樣!!!windows的sleep是毫秒延時,linux下是秒級延時,而且輸入浮點數後是向下取整

秒級延時函式,輸入浮點數的話會直接向下取整。所以sleep(0.9)實際上等於沒有任何延時!(這正是我出bug 的緣由)

微秒級延時函式

不要再糾結什麼平台用什麼函式了,下面這個一勞永逸解決跨平台延時問題

#ifdef win32

#include #elif _posix_c_source >= 199309l

#include // for nanosleep

#else

#include // for usleep

#endif

​void sleep_ms(int milliseconds) // cross-platform sleep function

is there an alternative sleep function in c to milliseconds

C 延時函式 非Sleep

在很多時候,我們的程式,在執行下一步操作之前,需要等待上一步的執行完成,這種延時等待的方式在非同步操作,或者是利用訊息迴圈機制通訊的程式中,最為體現的明顯。舉個api的例子 我們自己的程式是a,需要利用api結合windows 訊息機制,控制外部程式b a向b傳送乙個訊息,b去執行,此時a需要等待b...

C 延時函式 非Sleep

在很多時候,我們的程式,在執行下一步操作之前,需要等待上一步的執行完成,這種延時等待的方式在非同步操作,或者是利用訊息迴圈機制通訊的程式中,最為體現的明顯。舉個api的例子 我們自己的程式是a,需要利用api結合windows 訊息機制,控制外部程式b a向b傳送乙個訊息,b去執行,此時a需要等待b...

再論雙分派

暴力雙分派速度快,可是當類增多時,代價依然很大。map雙分派在速度優化上有dynamic cast和static cast兩種選擇,loki把這個選擇做成了policy。矩陣雙分派速度上有天然的優勢,但是你要修改你的類。於是loki也把這個做成了policy供你選擇。矩陣雙分派的思想是,在你的cla...