高性能服务器编程
jianghao1996
这个作者很懒,什么都没留下…
展开
-
Libevent 源码剖析(始)
Libevent 源码剖析二一个实例event结构体从简单使用到源码分析一步步学习一个实例任何一个代码的学习都是从hello world开始的#include <sys/signal.h>#include <event.h>void signal_cb( int fd, short event, void *arg){ struct event_base *base = (struct event_base *)arg; struct timeval de原创 2020-07-07 17:15:12 · 173 阅读 · 0 评论 -
Libevent源码解读(三)
Libevent源码解读(三)事件主循环事件处理主循环事件主循环根据系统提供的事件多路分发机制执行事件循环,堆已注册的就绪事件,调用注册事件的回调函数来处理事件事件处理主循环Libevent 的事件主循环主要是通过event_base_loop()函数完成的,其主要操作入下面的流程图,event_base_loop所做的就是持续执行下面的循环...原创 2020-07-06 17:11:31 · 205 阅读 · 0 评论 -
Libevent源码剖析二
Libevent源码剖析:event结构体event结构体Libevent 对 event的管理事件设置的接口函数event_base创建和初始化接口函数libevnt中的事件处理器是event结构类型,主要封装了局柄,事件类型,回调函数,以及其他必要的标志和数据。该结构体在include/event2/event_struct.h文件中定义event结构体struct event { #if 0 struct event_callback { TAILQ_ENTRY(event_callb原创 2020-07-03 18:44:41 · 185 阅读 · 0 评论 -
Libevent 源码剖析一
Libevent 学习及源码剖析(一)libevent概述libevent下载和安装libevent源码组织架构libevent概述Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select原创 2020-06-05 15:23:27 · 358 阅读 · 0 评论 -
Linux 高性能服务器网络编程(三 IO复用)
Linux 高性能服务器网络编程 IO复用select函数pollepoll系列系统调用内核事件表EPLOLL的LT(水平触发)与ET(边缘触发)EPOLLONESHOT事件select/poll/epoll的区别应用:非阻塞connect信号发送信号Linux信号信号处理函数signalsigaction统一事件源SIGHUP/SIGPIPE/SIGURG定时器socket 选项SO_RECVTIMEO 和 SO_SNDTIMEOSIGALRM信号基于升序链表的定时器IO复用系统调用的超时参数IO复用原创 2020-06-04 09:58:28 · 322 阅读 · 0 评论 -
Linux 高性能服务器网络编程(二)
Linux 高性能服务器网络编程Linux服务器程序规范日志高性能服务器框架(核心)基本框架IO模型高效的事件处理模式(Reactor/Proactor)Reactor模式(同步IO模型)Proactor(异步IO模型)两种高效的并发模式半同步/半异步领导者/追随者(略)其他提高服务性能的方式池数据复制上下文切换和锁机制参考自《高性能服务器编程》,主要用于学习网络编程模块Linux服务器程序规范日志rsyslogd : 此守护进程既能接收用户进程输出的日志,又能接收内核进程。用户进程调用sysl原创 2020-06-02 10:18:37 · 280 阅读 · 0 评论