POSIX定时器-线程方式创建定时器
来源:互联网 发布:通达oa开放那些端口 编辑:程序博客网 时间:2024/05/22 08:00
/**************************************点点滴滴******汇江成海**********************************/
定时器详细描述可参考这位道友的博客文章:http://blog.csdn.net/sukhoi27smk/article/details/8733011
废话不多说,直接上代码
#include <stdio.h>
#include <signal.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int tick = 0;
timer_t tm;
union sigval v;
int my_timer_destory(timer_t *tmid);
void my_timer_thread(union sigval sv)
{
tick++;
printf("Timer tick:%d %d \n", tick, sv.sival_int);
if(tick >= 30)
{
my_timer_destory(tm);
}
}
int my_timer_create(void (*timer_fun)(union sigval v), timer_t *tmid)
{
struct sigevent sevt;
memset(&sevt, 0, sizeof(sevt));
sevt.sigev_notify = SIGEV_THREAD; //定时器到期后会创建一个线程去执行sigev_notify_function函数,执行完后线程退出
sevt.sigev_notify_function = timer_fun;
if(timer_create(CLOCK_MONOTONIC, &sevt, tmid) == -1)
{
printf("Timer create failed.\n");
return -1;
}
else
return 0;
}
int my_timer_set(timer_t *tmid)
{
struct itimerspec itm;
itm.it_value.tv_sec = 1;
itm.it_value.tv_nsec = 0;
itm.it_interval.tv_sec = 1;
itm.it_interval.tv_nsec = 0;
if(timer_settime(tmid, 0, &itm, NULL) == -1)
{
printf("Timer start failed.\n");
return -1;
}
else
return 0;
}
int my_timer_destory(timer_t *tmid)
{
if(*tmid == 0)
{
return 0;
}
else
return timer_delete(*tmid);
}
void main(void)
{
my_timer_create(my_timer_thread, &tm);
my_timer_set(&tm);
pause();
}
- POSIX定时器-线程方式创建定时器
- POSIX定时器
- POSIX定时器
- POSIX定时器
- POSIX定时器
- POSIX定时器
- POSIX定时器
- 黑马程序员-线程(两种创建方式)、定时器
- posix方式创建新线程
- POSIX定时器:timer_settime(…
- POSIX定时器用法
- POSIX定时器:timer_settime()
- POSIX定时器:timer_settime()
- POSIX:TMR间隔定时器
- POSIX定时器:timer_settime()
- POSIX定时器:timer_settime()
- Linux POSIX 定时器 (timer_create)
- POSIX定时器timer_create()以及线程中的gettid() 和pthread_self()
- Eclipse中怎么安装TestNG单元测试框架
- Spring中的@scope注解
- Linux下SGX的使用(2)-Hello Enclave
- Spring RedisTemplate操作-List操作
- Codeforces 856A
- POSIX定时器-线程方式创建定时器
- 第2章 UNIX标准及实现
- 深入理解 Java中的深克隆与浅克隆
- java_字符串中各类型字符出现的个数统计
- linux:一些压缩命令的使用
- Spring RedisTemplate操作-Set操作
- linux的GPIO驱动的使用(s5pv210)
- 今日头条
- 在页面上获取字典中的value