更新 README.md
parent
78d1ac1ea6
commit
07764643ac
16
README.md
16
README.md
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#### 一、介绍
|
||||
|
||||
一个Linux下的超级简洁的定时器:*利用epoll机制和timerfd新特性实现的多重、多用、多个定时器实现*。只需要使用TIMER_CREATE()接口创建一个定时器实体,即**可向其添加成千上万个定时任务,定时任务可达到纳秒级别的精度,且可在同一时间点添加不同的定时任务!**。
|
||||
一个Linux下的超级简洁的定时器:*利用epoll机制和timerfd新特性实现的多重、多用、多个定时任务实现*。只需要使用TIMER_CREATE()接口创建一个定时器实体,即**可向其添加成千上万个定时任务,定时任务可达到纳秒级别的精度,且可在同一时间点添加不同的定时任务!**。
|
||||
|
||||
#### 二、软件接口
|
||||
|
||||
|
|
@ -26,8 +26,8 @@ TIMER_ADD(name, itimespec, repeat, cb, data);
|
|||
TIMER_DEL(name, timerfd);
|
||||
```
|
||||
|
||||
TIMER_ADD()用于向定时器实例name中添加一个定时器,其参数描述如下:
|
||||
- ittimespec是定时器的定时时间和循环事件,其结构体类型如下:
|
||||
TIMER_ADD()用于向定时器实例name中添加一个定时任务,其参数描述如下:
|
||||
- ittimespec是定时任务的定时时间和循环时间,其结构体类型如下:
|
||||
```
|
||||
struct timespec {
|
||||
time_t tv_sec; // seconds
|
||||
|
|
@ -39,15 +39,15 @@ struct itimerspec {
|
|||
};
|
||||
```
|
||||
|
||||
其中it_value即是超时时间,若想定义周期定时任务,则设置it_interval成员;若不想定义周期定时器,则需设置it_interval成员都为0。因此,第一次超时和后面周期定时任务是可以使用不同时间的。
|
||||
其中it_value即是超时时间(相对时间),若想定义周期定时任务,则设置it_interval成员;若不想定义周期定时任务,则需设置it_interval成员都为0。因此,第一次超时和后面周期定时任务是可以使用不同时间的。
|
||||
|
||||
- repeat是周期定时器的重复次数,若设置为**-1,代表永远重复;0,代表一次都不执行**;因此repeat应至少为1,或者使用-1;
|
||||
- repeat是周期定时任务的重复次数,若设置为**-1,代表永远重复;0,代表一次都不执行**;因此repeat应至少为1,或者使用-1;
|
||||
- cb为定时任务超时回调函数,其类型为:void (*timer_callback_t)(void *data);
|
||||
- data为定时任务回调函数的参数,为void *类型,用户可指定为自己定义的结构体;
|
||||
|
||||
TIMER_ADD()添加定时任务成功返回新定时任务的文件描述符,失败返回 < 0。返回的文件描述符,可用于在TIMER_DEL()中删除定时器。
|
||||
TIMER_ADD()添加定时任务成功返回新定时任务的文件描述符,失败返回 < 0。返回的文件描述符,可用于在TIMER_DEL()中删除定时任务。
|
||||
|
||||
4. **查询和清空定时器**
|
||||
4. **查询和清空定时任务**
|
||||
```
|
||||
TIMER_COUNT(name);
|
||||
TIMER_CLEAR(name);
|
||||
|
|
@ -57,7 +57,7 @@ TIMER_COUNT(name)用于查询定时器实例name中现存的定时任务个数
|
|||
|
||||
#### 三、使用实例
|
||||
|
||||
下面是一个非常简单的使用示例:共创建了两个定时器,每个第一次超时都是3S,后面每隔1S超时一次;但第一个定时器频次为8,第二个定时器频次为3;当所有定时器都超时后,输入回车即可退出:
|
||||
下面是一个非常简单的使用示例:共创建了两个定时任务,每个第一次超时都是3S,后面每隔1S超时一次;但第一个定时任务频次为8,第二个定时任务频次为3;当所有定时任务都超时后,输入回车即可退出:
|
||||
```
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
|||
Loading…
Reference in New Issue