`
soli
  • 浏览: 11058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用 libevent 实现定时器(timer)

阅读更多
#include <event.h>
#include <stdio.h>
#include <time.h>

static void
hello(int fd, short event, void *arg)
{
    printf("hello man\n");
}

int main(int argc, const char *argv[]) 
{
    struct event_base *base;
    struct timeval tm;
    struct event evt;

    evutil_timerclear(&tm);
    tm.tv_sec = 10;

    base = event_base_new();
    //evtimer_set(&evt, hello, NULL);
    event_set(&evt, -1, EV_PERSIST, hello, NULL);
    event_base_set(base, &evt);
    evtimer_add(&evt, &tm);
    event_base_loop(base, 0);
    return 0;
}


参考:http://yaojingguo.iteye.com/blog/826196

注意注释处的不同。

分享到:
评论

相关推荐

    libevent定时器的示例

    在本示例中,我们将探讨如何使用Libevent实现一个简单的定时器,每隔一秒打印信息。 首先,我们需要理解Libevent的工作原理。Libevent 使用一种称为“事件基”(event base)的结构来管理所有的事件,包括定时器...

    20120905_go语言和libevent的并发(timer测试)1

    在本文中,我们将探讨Go语言和libevent在并发编程中的应用,特别是关于timer测试的细节。首先,我们来看一下Go语言的部分。 Go语言是Google开发的一种静态类型、垃圾回收、并发型、解释型的编程语言,它具有强大的...

    LibEvent定时器事件开发实例

    在上述内容中,给出了LibEvent定时器事件开发的具体实例,其中包含了初始化事件循环的InitThread函数,该函数创建了一个事件基础对象,并定义了三个定时器,分别在10秒、30秒和60秒触发一次,这些定时器使用了同一个...

    PHP 使用pcntl和libevent 实现Timer功能

    标题中的“PHP 使用pcntl和libevent 实现Timer功能”是指在PHP中使用`pcntl`(PHP进程控制)和`libevent`库来创建定时器功能。`pcntl`扩展允许PHP进行进程管理和控制,而`libevent`是一个事件通知库,常用于网络编程...

    一个libevent学习用的服务端客户端

    4. **定时器(Timer)**:libevent提供了定时事件的功能,允许开发者设置在特定时间后执行的回调。 5. **缓冲区(Buffer)**:libevent包含了Buffer类,用于高效地读写数据,减少了系统调用的次数。 **libevent在...

    Libevent学习资料(代码+文档)

    开发者可以通过libevent的timer API创建和管理定时事件。 总的来说,这份学习资料为深入理解Libevent和构建基于TCP的多线程服务器提供了全面的资源。通过学习,开发者不仅可以掌握Libevent的使用,还能提升在网络...

    c++版本libevent,仿照libevent写的一个服务器框架

    c++版本libevent,仿照libevent写的一个服务器框架,libevent的基本功能已实现,暂时不能在windows平台上使用,定时器是纯粹的timer wheel方式,与libevent的小根堆不一样,而且最大定时时间是固定的,暂时不支持...

    F:\libevent-0.9 源码(资料中转)

    5. **Timer事件**:libevent提供了定时器功能,开发者可以通过`event_timeout_init()`创建定时事件,并设置超时回调。 四、libevent源码解析 1. **事件调度机制**:libevent-0.9使用了基于优先级的事件队列,...

    timer

    在高并发的服务器环境中,可能还会涉及到异步编程、事件驱动框架(如libevent、libev或libuv)等技术来实现高性能的定时器。 总之,定时器是软件开发中的重要组成部分,它允许我们精确控制程序的执行流程。通过GCC...

    libevent v0.1

    5. **定时器(Timer)**:libevent提供了一种创建定时事件的方法,可以设置超时时间,当达到指定时间时触发回调函数。这通常用于执行周期性任务或设置超时限制。 6. **多线程支持**:尽管“libevent v0.1”是早期...

    C 定时器实现

    - 考虑使用异步I/O或事件驱动编程模型(如libevent、libev、libuv等),以提高处理大量并发定时器的效率。 综上所述,基于RBTree和域套接字的C语言定时器实现提供了一种高效且可扩展的多线程定时解决方案。通过...

    libevent-release-1.4.14b-stable.tar.gz

    libevent 1.4.14b-stable版本中,包含了丰富的事件类型,如EV_READ用于监听数据可读事件,EV_WRITE用于监听数据可写事件,EV_SIGNAL用于处理信号事件,以及EV_TIMER用于设置定时器。这些事件类型可以通过event_set()...

    最新libevent

    4. **定时器**:通过`event_timer`接口,开发者可以设置定时事件,当达到指定时间时,注册的回调函数会被调用。 5. **信号处理**:libevent也支持信号事件,允许程序响应来自操作系统的信号,如SIGINT(中断)或...

    定时器改进例子定时器改进例子

    此外,还可以探索更高级的定时器实现,如基于事件循环的定时器,如libevent或libev等库提供的功能。 总的来说,C语言中的定时器改进涉及到多个方面,包括提高精度、保证线程安全、增加可重入性和灵活性。理解并掌握...

    libevent官方文档 Ref1-9

    - **事件模型**:libevent支持四种主要的事件模型:epoll、kqueue、poll和select,根据不同的操作系统选择最优化的实现。 - **事件循环**:libevent中的事件循环负责处理各种事件,如网络连接、定时器、信号等,当...

    基于libevent自定义封装的函数接口(启动http服务器、启动事件服务等)

    支持超时事件、持久事件, I/O事件,定时器和信号等事件,支持注册事件优先级,可用来实现构建http服务端、事件服务等... libevent_api:是基于libevent自定义封装的函数接口(启动http服务器、启动事件服务等) 运行...

    高性能高并发事件处理框架Libevnt

    在Libevent中,事件主要分为三类:文件描述符事件(File Descriptor Events)、信号事件(Signal Events)和定时器事件(Timer Events)。文件描述符事件通常与网络I/O关联,例如TCP和UDP连接的读写事件。信号事件则...

    基于workerman(v3.4.5)的swoole移植版本,移除了对pcntl,libevent,event,ev扩展的依赖

    项目是workerman(v3.4.5)的swoole移植版本,移除了对pcntl,libevent,event,ev扩展的依赖,转而使用swoole提供的swoole_process和swoole_event,定时器采用swoole的swoole_timer,server采用stream扩展

    libev源码和文档

    libev的设计目标是提供一个功能强大且易于使用的事件处理框架,支持多种事件源,如文件描述符、定时器以及信号等。这个库在许多高性能服务器和网络应用中被广泛采用,因为它可以有效地处理大量的并发连接。 **1. ...

Global site tag (gtag.js) - Google Analytics