我是靠谱客的博主 暴躁嚓茶,最近开发中收集的这篇文章主要介绍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的几种方法总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部