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...