Libevent原始碼分析(零) 前言

2021-07-10 09:56:34 字數 544 閱讀 3682

libevent的介紹網上比較多,基本有以下幾個特點:

事件驅動,高效能

高效能是libevent最重要的特性,後續原始碼分析中我們將分析為何libevent會如此高效。

輕量級,專注於網路

筆者使用過ace,也讀過一些ace的原始碼,ace功能太多,**組織也相對混亂,和ace相比,libevent專注於網路,**精煉、易讀。

支援多種 i/o多路復用技術, epoll、poll、dev/poll、select 和kqueue 等

和zeromq一樣,libevent同樣可以跨平台使用,支援多種io模型,但是相比於zeromq在windows上支援select,libevent在windows上支援iocp,這對效率是非常大的提公升。

支援 i/o,定時器和訊號等事件

libevent把io事件,定時器事件和訊號事件三者都封裝成了時間,對於上層使用者幾乎沒有差異,非常便捷,這也是我們將在之後的原始碼分析中重點分析的部分。

Libevent原始碼分析 開篇

出處 我所分析的libevent版本是2.0.21版本,是目前最新的穩定版本。看這系列博文中,需要讀者有linux程式設計的一些基礎。因為像posix 檔案描述符 多執行緒等等這些概念,我並不會去解釋,我預設讀者已經熟悉這些概念了。如果讀者讀過 unix環境高階程式設計 那就完全沒問題了。因為lib...

Libevent原始碼分析 開篇

我所分析的libevent版本是2.0.21版本,是目前最新的穩定版本。看這系列博文中,需要讀者有linux程式設計的一些基礎。因為像posix 檔案描述符 多執行緒等等這些概念,我並不會去解釋,我預設讀者已經熟悉這些概念了。如果讀者讀過 unix環境高階程式設計 那就完全沒問題了。因為libeve...

Libevent原始碼分析 記憶體分配

libevent的記憶體分配函式還是比較簡單的,並沒有定義記憶體池之類的東西。如同前一篇部落格 那樣,給予libevent庫的使用者充分的設定權 定製 即可以設定使用者 libevent庫的使用者 自己的記憶體分配函式。至於怎麼分配,主動權在於使用者。但在設定 定製 的時候要注意一些地方,下面會說到...