libevent::事件::定时器2
#define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg))

#include <cstdio>
#include <errno.h>
#include <sys/types.h>
#include <event.h>
#include <event2/event.h>
#include <event2/event_struct.h>
#include <event2/event-config.h>
#include <event2/util.h> void do_timeout(evutil_socket_t fd, short event, void *arg)
{
printf("do timeout (time: %ld)!\n", time(NULL));
} void create_timeout_event(struct event_base *base)
{
struct event *ev;
struct timeval timeout;
//将事件和event_base绑定
ev = event_new(base, -1, EV_PERSIST, do_timeout, NULL);
if (ev) {
timeout.tv_sec = 5;
timeout.tv_usec = 0;
event_add(ev, &timeout);
}
} int
main(int argc, char **argv)
{
struct event_base *base; base = event_base_new(); if (!base) {
printf("Error: Create an event base error!\n");
return -1;
} create_timeout_event(base);
event_base_dispatch(base); return (0);
}

libevent::事件::定时器2的更多相关文章
- libevent::事件::定时器
#include <cstdio> #include <errno.h> #include <sys/types.h> #include <event.h&g ...
- Libevent 事件管理和添加事件
/** 我们先来看一下事件的创建*/struct event * event_new(struct event_base *base, evutil_socket_t fd, short even ...
- Libevent 事件循环(2)---事件被加入激活队列
由Libevent 事件循环(1) 在上文中我们提到了libevent 事件循环event_dispatch 的大致过程,以epoll为例,我们看一下事件被如何加入激活队列. //在epoll_dis ...
- libevent中定时器的使用方法
#include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <signal.h ...
- Libevent 事件循环(1)
// 事件的dispatch int event_base_loop(struct event_base *base, int flags) { //得到采用的事件模型 epoll/epoll/ ...
- 并发编程---死锁||递归锁---信号量---Event事件---定时器
死锁 互斥锁:Lock(),互斥锁只能acquire一次 递归锁: RLock(),可以连续acquire多次,每acquire一次计数器+1,只有计数为0时,才能被抢到acquire # 死锁 f ...
- libevent(一)定时器Demo
开始研究libevent,使用的版本是2.0.22. 实现一个定时器:每2秒执行一次printf. #include <stdio.h> #include <stdlib.h> ...
- libevent::事件
/***************************************************************** 函数功能: 创建事件集 ********************* ...
- libevent 定时器示例
程序执行结果: 每隔2秒,触发一次定时器. (2)98行:evtimer_assign在event.h中定义如下: 再来看看event_assign函数: ev 要初始化的事件对象 base ...
随机推荐
- PHPCon 2019 第七届 PHP 开发者大会总结
往届回顾-2018:PHPCon 2018链接: https://pan.baidu.com/s/17nfrfqk9K4vwKPAsjBVW7A——提取码:rjbr 随着PHP7的诞生,兼顾了高性能和 ...
- C#基础知识总结(三)--反射
如何在C#.NET开发中使用反射. 首先,我新建一个普通的类库项目.在该项目的测试类中,定义好 属性.静态方法.实例方法.无参方法等... 代码如下: using System; using Syst ...
- Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
为了让我们第一时间知道程序的运行状态,Asp.Net Core 添加了默认的日志输出服务.这看起来并没有什么问题,对于开发人员也相当友好,但如果不了解日志输出的细节,也有可能因为错误的日志级别配置 ...
- 利用IntelliJ IDEA与Maven开发scala程序,并打包提交到spark集群
https://zhuanlan.zhihu.com/p/23141509 https://blog.csdn.net/u011470552/article/details/54564636 http ...
- 通俗讲解 RESTful
1 什么是 RESTful 百度一下 RESTful,查到的资料很多都讲得不清楚,看完了都不知道说的是啥,导致很多人对 RESTful 不甚了解.来看一下常见的解释: (1)神一样的描述REST 并不 ...
- 转:怎么用Sql语句获取一个数据库中的所有表的名字
用sql获取数据库中所有的表名的方法:1.oracle下:select table_name from all_tables;2.MySQL下:select table_name from infor ...
- 机器学习之SVM调参实例
一.任务 这次我们将了解在机器学习中支持向量机的使用方法以及一些参数的调整.支持向量机的基本原理就是将低维不可分问题转换为高维可分问题,在前面的博客具体介绍过了,这里就不再介绍了. 首先导入相关标准库 ...
- 阿里云服务器CentOS6.9安装maven
1.下载maven http://maven.apache.org/download.cgi 2.移动到linux yangyuke用户下(此处由于我设置进入linux的是自定义用户yangyuke, ...
- jar包冲突了?如何确定是和哪个jar包冲突了?
导读:工程编译的时候好好地,怎么一运行就报各种的NoSuch***Error,猜测可能是jar包冲突了,但是究竟是和哪个jar包冲突了呢. 关键词:jar包冲突,NoSuchFileldError,N ...
- 从零开始入门 K8s | 可观测性:你的应用健康吗?
作者 | 莫源 阿里巴巴技术专家 一.需求来源 首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强: 首先是 ...