在 libevent 中使用 MariaDB(MySQL)

2018-10-02
阅读 4 分钟
5.5k
在之前我翻译的官方文档中提到了 MariaDB 提供了对异步 I/O 的支持。那篇文章是一个比较简要的介绍。不过实际适配中,官方也提供了一个完整适配 libevent 的示例代码。本文算是对我上述示例代码的阅读笔记吧。

在 C/C++ 异步 I/O 中使用 MariaDB 的非阻塞接口

2018-09-14
阅读 5 分钟
5.9k
对 C/C++,MySQL 提供的库传统上都是阻塞操作,因此适合多线程 / 进程服务器架构编程。但是如果用 C/C++ 编写服务器,往往对性能会有极致要求,此时采用非阻塞的异步 I/O 才是更好的框架。

基于汇编的 C/C++ 协程 - 实现

2018-08-01
阅读 8 分钟
7.9k
基于汇编的 C/C++ 协程(用于服务器),我之前已经在下面两篇文章中详细阐述了原理: 基于汇编的 C/C++ 协程 - 背景知识 基于汇编的 C/C++ 协程 - 切换上下文 而这篇文章,就终于是 C/C++ 协程的实现了。正如上面两篇文章所说的,我们需要实现的目标有两个: 有同步式服务器编程的顺序思路,便于功能设计和代码调试——我...

基于 epoll 设计类似 libevent 的异步 I/O 库 - 接口

2017-06-13
阅读 4 分钟
6.5k
这篇文章可以算是我在 GitHub 上一个工程的设计概要了。简要说明了该工程的设计思路以及技术要点。 本文章纯原创,没有参考资料。不过有设计过程中记录下的相关文章: 使用 pipe 在程序正文中捕获和处理信号 本文地址:[链接] 工程简介 基本原理 总所周知,在 Linux 中实现异步 I/O,适用的系统 API 就是 epoll。这里主...

使用 libev 构建 TCP 响应服务器(echo server)的简单流程

2016-08-23
阅读 2 分钟
15.1k
请注意这是 libev 而不是 libevent 的文章!这篇文章主要是使用具体的例子,说明如何使用 libev。网上不少文章都是照抄示例,一点用都没有……本文将示例的代码精简一下,补上说明;大家都懂的部分就不赘述了。需要完整源码请查看参考资料。

Libev 官方文档学习笔记 - 03:常用 watcher 接口

2016-08-22
阅读 6 分钟
14.4k
这个 watcher 负责检测文件描述符(以下简称fd)是否可写入数据或者是读出数据。最好是将fd设置为非阻塞的。  注意有时候在调用read时是没有数据的(返回0),此时一个一个非阻塞的read会得到EAGAIN错误。

Libev 官方文档学习笔记 - 02:watcher 基础

2016-08-08
阅读 3 分钟
11k
请注意这是 libev 而不是 libevent 的文章! 这篇文章是第二篇,主要讲 libev 里的 watcher 的一些基础操作。 本文地址:[链接] Watcher 解析 以下是一段示意性的代码,使用的是ev_io: {代码...} 每一个 watcher 类型有一个附属的 watcher 结构体。(一般是struct ev_XXX或ev_XXX)  每一个 watcher 结构都需要用ev_i...

Libev 官方文档学习笔记 - 01:概述和 ev_loop

2016-08-04
阅读 6 分钟
33.8k
自从接触到 libev 之后,就深深赞同作者精简的设计理念,于是就爱上了 libev 这样简单的I/O库。此外,libev 的大小也比 libevent 小得多并且自由得多。虽然我在公司的项目用的异步 I/O 库还是以 libevent 和 libubox 为主,但是个人业余的工程中,往往用的是 libev 而不是 libevent。

Libevent 官方文档学习笔记(3. evbuffer部分)

2016-07-04
阅读 6 分钟
9.7k
本文地址:[链接]  Evbuffers: 缓冲化的I/O实用工具  头文件:<event2/buffer.h> Evbuffer基本操作 {代码...} 创建/销毁evbuffer {代码...} 第一个函数,参数locking传入的参数是一个锁。可以传入NULL,让evbffer自动创建一个锁。 {代码...} 第一个函数,获取当前evbuffer的总数据长度。第二个函数,由于数据在e...

Libevent 官方文档学习笔记(2. bufferevent部分)

2016-05-31
阅读 8 分钟
16.2k
evutil_socket_tSocket的抽象。除了Windows之外,其他系统都是一个int类型。如果考虑Windows的兼容性的话,建议用这个类型。

Libevent 官方文档学习笔记(1. libevent_core部分)

2016-05-30
阅读 9 分钟
23.8k
初入libevent的人,很可能是第一次接触异步编程。Libevent的编程思想,建议还是多看前人的程序,或者是看libevent本身的文档学习。或者是介绍另外一个库,那就是libuv,它是libev某种意义上的的替代品(而libev又可以算是libevent的某种替代品笑)。libuv的文档我记得也有对异步编程的介绍。好了,这不是本文的内容。