linux c 定時器的實現

轉自:http://www.cnblogs.com/anjianliang/p/5594114.html

 

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種

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章