linux下,实现定时功能
来源:互联网 发布:怎样找淘宝客推广 编辑:程序博客网 时间:2024/05/17 23:56
定时器Timer应用非常广泛,但在linux下,由于不同芯片对应不同晶振速度,导致定时功能实现麻烦,根据自己的经验,罗列下列三种定时方式
1,使用sleep()和usleep()
sleep和usleep函数无疑是实现方式最简单的定时器,但其有几个明显的缺点:
1、sleep函数准确度较低;
2、sleep函数多用于多线程休眠处理,当在多线程中需要进行定时,同时要求多线程执行其他命令(即不想让线程休眠),sleep函数实现起来就非常麻烦
使用方法:直接调用,sleep表示休眠多少秒,usleep表示休眠多少us
2,使用delay()
<span style="font-size:18px;">//简单延时结构—不准 void delay_50ms(uint t){uint j;for(;t>0;t--)for(j=6245;j>0;j--);}//根据晶振确定延时 </span>既不推荐这种方式实现延时,根据芯片的晶振频率不同,即使是相同的代码段,在不同的程序共,延时差距非常大,而且由于采用的实现方式是占用程序资源,所以对CPU的消耗也较大,极不推荐这种方式
3,使用signal()和alarm()
这种方式是利用SIGALRM 信号实现,精度能达到1秒,首先注册信号量SIGALRM处理函数,调用alarm(),设置定时长度,代码如下:
#include <stdio.h>#include <signal.h>#include <unistd.h>void timer(int sig){if(SIGALRM == sig){printf("timer\n");//alarm(5);}return ;} int main() { int i; signal(SIGALRM,timer); alarm(5);for(i=1;i<21;i++){printf("sleep %d ...\n",i);sleep(1);}// alarm(2);//for(i=1;i<21;i++)//{//printf("sleep %d ...\n",i);//sleep(1);//} return 0; }
0 0
- linux下,实现定时功能
- Linux下定时的实现
- linux 下crontab d定时 功能
- linux 下定时connect实现在线检测
- linux下微妙级别定时实现
- linux下实现定时执行php脚本
- PHP实现定时功能
- 定时器实现定时功能
- Linux下实现定时器功能
- Linux下实现路由功能
- Linux下短信功能实现
- andorid下实现定时发短信的功能
- andorid下实现定时发短信的功能
- andorid下实现定时发短信的功能
- CentOS下使用rsync实现定时复制功能
- 通过linux的crontab实现定时执行shell脚本功能
- 页面定时刷新功能实现
- 使用Quartz实现定时功能
- 单例模式
- java nio 学习之 Buffer 类
- Libevent源码分析-----配置event_base
- const iterator 和const_iterator区别
- RelativeLayout布局的各种属性
- linux下,实现定时功能
- UA Curry One heavy gold make in to
- 《从零开始学Swift》学习笔记(Day1)——我的第一行Swift代码
- Libevent源码分析-----跨平台Reactor接口的实现
- 解决JS和安卓互调targetSdkVersion>=17原生代码无反应
- 学校员工管理系统 C++语言(继承、虚函数)
- BZOJ1778 [Usaco2010 Hol]Dotp 驱逐猪猡
- 《从零开始学Swift》学习笔记(Day2)——使用Web网站编写Swift代码
- JavaSE_Java的内部类和静态内部类的区别与联系