我是靠谱客的博主 暴躁嚓茶,这篇文章主要介绍linux用户态定时器,Linux下实现定时器Timer的几种方法总结,现在分享给大家,希望可以做个参考。

定时器Timer应用场景非常广泛,在Linux下,有以下几种方法:

1,使用sleep()和usleep()

其中sleep精度是1秒,usleep精度是1微妙,具体代码就不写了。使用这种方法缺点比较明显,在Linux系统中,sleep类函数不能保证精度,尤其在系统负载比较大时,sleep一般都会有超时现象。

2,使用信号量SIGALRM + alarm()

这种方式的精度能达到1秒,其中利用了*nix系统的信号量机制,首先注册信号量SIGALRM处理函数,调用alarm(),设置定时长度,代码如下:

#include

#include

void timer(int sig)

{

if(SIGALRM == sig)

{

printf("timern");

alarm(1); //we contimue set the timer

}

return ;

}

int main()

{

signal(SIGALRM, timer); //relate the signal and function

alarm(1); //trigger the timer

getchar();

return 0;

}

alarm方式虽然很好,但是无法首先低于1秒的精度。

3,使用RTC机制

RTC机制利用系统硬件提供的Re

最后

以上就是暴躁嚓茶最近收集整理的关于linux用户态定时器,Linux下实现定时器Timer的几种方法总结的全部内容,更多相关linux用户态定时器,Linux下实现定时器Timer内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(116)

评论列表共有 0 条评论

立即
投稿
返回
顶部