libevent

Libevent是一款跨平台的高性能I/O框架,用于处理网络和文件描述符的事件通知,广泛应用于如memcached和Chromium等项目。它提供统一的事件源处理,包括I/O、信号和定时事件,并具有线程安全特性。该库基于Reactor模式,支持边沿触发事件,尤其在epoll等I/O复用系统调用下表现优秀。
摘要由CSDN通过智能技术生成
libevent概述

Libevent 是开源社区的一款高性能的 I/O 框架库,使用 Libevent 的著名案例有:高性能的分布式内存对象缓存软件 memcached,Google 浏览器 Chromium 的 Linux 版本。作为一个 I/O 框架库,Libevent 具有如下特点:

◼ 跨平台支持。 Libevent 支持 Linux、Unix 和 Windows。

◼ 统一事件源。Libevent 对 I/O 事件、信号和定时事件提供统一的处理。

◼ 线程安全。Libevent 使用 libevent_pthreads 库来提供线程安全支持。

◼ 基于 Reactor 模式的实现。

使用示例
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <unistd.h>
#include <event.h>
#include <signal.h>

void signal_cb(int fd, short event, void *arg)
{
   
	printf("%d Signal triggered\n");
}

void timeout_cb(int fd, short event, void *arg)
{
   
	printf("timeout\n");
}

int main()
{
   
	struct event_base *base = event_init();

	struct event *signal_event = evsignal_new(base, SIGINT, signal_cb,NULL);
	event_add(signal_event, NULL);

	struct timeval tv = {
    2, 0 };
	struct event *timeout_event = evtimer_new(base, timeout_cb, NULL);
	event_add(timeout_event, &tv);

	event_base_dispatch(base);

	event_free(signal_event);
	event_free(timeout_event);
	event_bas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值