linux c下幾種定時器實現

2022-08-11 08:21:16 字數 364 閱讀 6108

1、alarm

n秒後觸發一次,不是迴圈的

2、setitimer

可以發出3種訊號給自己,

3、timerfd

這個介面基於檔案描述符,通過檔案描述符類似epoll那種的可讀事件進行超時通知,能夠被用於select/epoll/poll的應用場景,linux核心2.6.25版本及以上版本使用,golang也是這麼要求的,估計他用的timerfd

4、利用伺服器while(true) epoll_wait等短暫阻塞,無限迴圈,來檢查event佇列,超時就執行,來實現定時效果

5、另外有一點 epoll_wait 會被sig中斷,也有利用這點實現即時的定時器的,nginx裡可以配置選擇使用這種,或者使用第4種

Linux下實現定時器Timer的幾種方法

定時器timer應用場景非常廣泛,在linux下,有以下幾種方法 1,使用sleep 和usleep 其中sleep精度是1秒,usleep精度是1微妙,具體 就不寫了。使用這種方法缺點比較明顯,在linux系統中,sleep類函式不能保證精度,尤其在系統負載比較大時,sleep一般都會有超時現象。...

Linux下實現定時器Timer的幾種方法

定時器timer應用場景非常廣泛,在linux下,有以下幾種方法 1,使用sleep 和usleep 其中sleep精度是1秒,usleep精度是1微妙,具體 就不寫了。使用這種方法缺點比較明顯,在linux系統中,sleep類函式不能保證精度,尤其在系統負載比較大時,sleep一般都會有超時現象。...

iOS開發 幾種定時器

nstimer timer nstimer scheduledtimerwithtimeinterval 1.0 target self selector selector action userinfo nil repeats no timer invalidate self displaylin...