jQuery 一次定时器_Linux 学习笔记:Linux定时器简单应用

92ce136c8991de2e79be941b28410651.png

介绍:

在Linux 应用编程中使用setitimer() 函数创建定时器任务是最简单的,setitimer()在定时时间到的时候会触发SIGALRM信号。因此我们只需在信号中处理定时器相关操作即可。

以下是通过man 命令查看的setitimer()函数:

48436473ba0189d4d85a2e94516a593e.png

函数原型:

int getitimer(int which, struct itimerval *curr_value);
int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);

参数介绍:

which:
which参数表示类型,可选的值有:
ITIMER_REAL:以系统真实的时间来计算,它送出SIGALRM信号。
ITIMER_VIRTUAL:以该进程在用户态下花费的时间来计算,它送出SIGVTALRM信号。
ITIMER_PROF:以该进程在用户态下和内核态下所费的时间来计算,它送出SIGPROF信号

struct itimerval 
{
	/* Interval for periodic timer */
	struct timeval it_interval;
	/* Time until next expiration */ 
	struct timeval it_value;    
};
struct timeval 
{
	time_t      tv_sec;         /* seconds */
	suseconds_t tv_usec;        /* microseconds 1/1000000 seconds */
};
new_value: 
参数用来对计时器进行设置,it_interval为计时间隔,it_value为延时时长,
下面例子中表示的是在setitimer方法调用成功后,延时it_value后触发一次SIGALRM信号,
以后每隔it_interval触发一次SIGALRM信号。
settimer工作机制是,先对it_value倒计时,当it_value为零时触发信号,
然后重置为it_interval,继续对it_value倒计时,一直这样循环下去。
基于此机制,setitimer既可以用来延时执行,也可定时执行。
假如it_value为0是不会触发信号的,所以要能触发信号,
it_value得大于0;如果it_interval为零,只会延时,不会定时(也就是说只会触发一次信号)。
old_value: 参数,通常用不上,设置为NULL,它是用来存储上一次setitimer调用时设置的new_value值。

例程源码:

#include 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值