日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 多个定时器,timer: 一个Linux下的超级精简的多重定时器:可实现成千上万个定时任务,定时精度可达纳秒级别,且同一时间点可添加不同的任务!适用于云后台服务和嵌入式等各种环境。...

發布時間:2025/3/12 linux 50 豆豆

MT_Timer(MT譯為Multiple或Multi)

一、介紹

一個Linux下的超級簡潔的定時器:利用epoll機制和timerfd新特性實現的多重、多用、多個定時任務實現。只需要使用TIMER_CREATE()接口創建一個定時器實體,即可向其添加成千上萬個定時任務,定時任務可達到納秒級別的精度,且可在同一時間點添加不同的定時任務!。

二、軟件接口

整個定時器包含如下幾類接口。

創建和聲明定時器實例:使用定時器的第一步就是使用TIMER_CREATE()創建一個定時器實例,在其它文件使用到該定時器時,使用TIMER_DECLEAR()進行聲明:

TIMER_CREATE(name);

TIMER_DECLEAR(name);

初始化和反初始化定時器:在正式使用定時器之前,首先使用TIMER_INIT()初始化前面創建的定時器實例,name是實例名稱,max是創建定時器要檢測的定時任務數量;當不再使用定時器時,可使用TIMER_DEINIT()反初始化定時器(退出定時器,并釋放所有資源):

TIMER_INIT(name, max);

TIMER_DEINIT(name);

添加和刪除定時任務:

TIMER_ADD(name, itimespec, repeat, cb, data);

TIMER_DEL(name, timerfd);

TIMER_ADD()用于向定時器實例name中添加一個定時任務,其參數描述如下:

ittimespec是定時任務的定時時間和循環時間,其結構體類型如下:

struct timespec {

time_t tv_sec; // seconds

long tv_nsec; // nanoseconds

};

struct itimerspec {

struct timespec it_value;

struct timespec it_interval;

};

其中it_value即是超時時間(相對時間),若想定義周期定時任務,則設置it_interval成員;若不想定義周期定時任務,則需設置it_interval成員都為0。因此,第一次超時和后面周期定時任務是可以使用不同時間的。

repeat是周期定時任務的重復次數,若設置為**-1,代表永遠重復;0,代表一次都不執行**;因此repeat應至少為1,或者使用-1;

cb為定時任務超時回調函數,其類型為:void (*timer_callback_t)(void *data);

data為定時任務回調函數的參數,為void *類型,用戶可指定為自己定義的結構體;

TIMER_ADD()添加定時任務成功返回新定時任務的文件描述符,失敗返回 < 0。返回的文件描述符,可用于在TIMER_DEL()中刪除定時任務。

查詢和清空定時任務

TIMER_COUNT(name);

TIMER_CLEAR(name);

TIMER_COUNT(name)用于查詢定時器實例name中現存的定時任務個數;TIMER_CLEAR(name)用于清空定時器實例name中的所有定時任務。

三、使用實例

下面是一個非常簡單的使用示例:共創建了兩個定時任務,每個第一次超時都是3S,后面每隔1S超時一次;但第一個定時任務頻次為8,第二個定時任務頻次為3;當所有定時任務都超時后,輸入回車即可退出:

#include

#include

#include

#include "mt_timer.h"

void timeout_handle(void *arg)

{

printf("[%ld]:timeout1\n", time(NULL));

}

void timeout_handler(void *arg)

{

printf("[%ld]:timeout2\n", time(NULL));

}

TIMER_CREATE(test);

int main(void)

{

int timer;

struct itimerspec itimespec;

TIMER_INIT(test, 10);

itimespec.it_value.tv_sec = 3;

itimespec.it_value.tv_nsec = 0;

itimespec.it_interval.tv_sec = 1;

itimespec.it_interval.tv_nsec = 0;

timer = TIMER_ADD(test, &itimespec, 8, timeout_handle, NULL);

TIMER_ADD(test, &itimespec, 3, timeout_handler, NULL);

printf("[%ld]:timer_add : %d\n", time(NULL), TIMER_COUNT(test));

sleep(4);//getchar();

TIMER_DEL(test, timer);

printf("[%ld]:timer_del : %d\n", time(NULL), TIMER_COUNT(test));

TIMER_CLEAR(test);

printf("[%ld]:timer_clear : %d\n", time(NULL), TIMER_COUNT(test));

getchar();

TIMER_DEINIT(test);

return 0;

}

四、贊賞作者

五、參與貢獻

Fork 本倉庫

新建 Feat_xxx 分支

提交代碼

新建 Pull Request

六、碼云特技

使用 Readme_XXX.md 來支持不同的語言,例如 Readme_en.md, Readme_zh.md

GVP 全稱是碼云最有價值開源項目,是碼云綜合評定出的優秀開源項目

總結

以上是生活随笔為你收集整理的linux 多个定时器,timer: 一个Linux下的超级精简的多重定时器:可实现成千上万个定时任务,定时精度可达纳秒级别,且同一时间点可添加不同的任务!适用于云后台服务和嵌入式等各种环境。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 林雅儿欧洲留学恋爱日记在线 | 久久亚洲一区二区三区四区 | 欧美一区二区国产 | 国产粉嫩在线观看 | 亚洲AV无码久久精品色三人行 | 久草新免费| 六月婷婷色 | 黄网站在线免费看 | 午夜黄色在线观看 | 男女操操视频 | 涩涩涩涩涩涩涩涩涩 | 茄子香蕉视频 | 色屁屁一区二区三区视频 | 亚洲国产精品午夜久久久 | 亚洲图片综合区 | 国产高清视频在线播放 | av网站在线观看不卡 | 久久久夜色精品亚洲 | 天堂av免费看 | 五月花婷婷 | 亚洲精华液一区二区 | av中文资源 | 最新av免费观看 | 婷婷五月精品中文字幕 | 欧美日韩在线直播 | 中文字幕av不卡 | 亚洲热在线视频 | 亚洲乱码视频在线观看 | 大尺度舌吻呻吟声 | 国产亚洲成av人片在线观看桃 | 日本黄色aaa | 国产日韩欧美亚洲 | 成人免费黄色网 | 欧美大波大乳巨大乳 | 成人颜色网站 | 九九精品在线观看 | 国产天堂第一区 | 日本一区二区三区在线播放 | 国产伦精品一区二区三区高清版禁 | 国产熟女高潮一区二区三区 | 色婷婷六月 | 中文字幕在线日韩 | 亚洲国产精品毛片 | 亚洲精品乱码久久久久 | 99热精品在线播放 | jlzzjlzz国产精品久久 | 在线观看黄色片 | 色一区二区三区 | 87福利视频 | 女生裸体无遮挡 | 偷拍亚洲 | va免费视频| 88av网站| 久久手机免费视频 | 成人免费视频国产在线观看 | 狠狠人妻久久久久久综合 | 91久久久国产精品 | h无码动漫在线观看 | 色综合影视 | 亚洲国产一区二区三区四区 | 免费观看黄色网址 | 国产黄频在线观看 | 欧美一区二区国产 | 密乳av| 欧亚免费视频 | 蜜桃视频一区二区在线观看 | 黄色一级在线视频 | 一本色道综合久久欧美日韩精品 | 天天操天天艹 | 暖暖日本在线 | 一区小视频 | 国产99久久久久 | 国产传媒一区二区三区 | 东京av在线 | 欧美日韩偷拍视频 | 三级精品在线 | av大西瓜 | 欧美日p视频 | 波多野结衣午夜 | 中文字字幕一区二区三区四区五区 | xxxx国产片| 久青草资源福利视频 | 色七七在线 | 亚洲一区二区三区香蕉 | 国产香蕉视频在线播放 | 亚洲伦理影院 | 久在线视频 | 亚洲国产精品成人无久久精品 | 一二三区在线播放 | 日本福利一区二区三区 | 亚洲三级欧美 | 日本亲与子乱xxx | 一级小毛片 | 强伦人妻一区二区三区视频18 | 天天草av | 国产精品美女久久久久av超清 | 亚洲国产精品久久久久久6q | 国产乱人乱精一区二视频国产精品 | 日日干天天|