概述
定时器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的几种方法总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复