向原文作者致敬!
上來當然要先誇獎啦,libevent 有幾個顯著的亮點:
事件驅動(event-driven),高效能;
輕量級,專注於網路,不如ace那麼臃腫龐大;
源**相當精煉、易讀;
跨平台,支援windows、linux、*bsd和mac os;
支援多種i/o多路復用技術, epoll、poll、dev/poll、select和kqueue等;
支援i/o,定時器和訊號等事件;
註冊事件優先順序;
libevent已經被廣泛的應用,作為底層的網路庫;比如memcached、vomit、nylon、netchat等等。
libevent當前的最新穩定版是1.4.13;這也是本文參照的版本。
學習libevent有助於提公升程式設計功力,除了網路程式設計方面外,libevent的**裡有很多有用的設計技巧和基礎資料結構,比如資訊隱藏、函式指標、c語言的多型支援、鍊錶和堆等等,都有助於提公升自身的程式功力。
程式設計不止要了解框架,很多細節之處恰恰也是事關整個系統成敗的關鍵。只對libevent本身的框架大概了解,那或許僅僅是一知半解,不深入**分析,就難以了解其設計的精巧之處,也就難以為自己所用。
事實上libevent本身就是乙個典型的reactor模型,理解reactor模式是理解libevent的基石;因此下一節將介紹典型的事件驅動設計模式——reactor模式。
參考資料:
libevent:
libevent原始碼深度剖析
序幕 張亮上來當然要先誇獎啦,libevent 有幾個顯著的亮點 事件驅動 event driven 高效能 輕量級,專注於網路,不如ace那麼臃腫龐大 源 相當精煉 易讀 跨平台,支援windows linux bsd和mac os 支援多種i o多路復用技術,epoll poll dev pol...
libevent原始碼深度剖析
上來當然要先誇獎啦,libevent 有幾個顯著的亮點 事件驅動 event driven 高效能 輕量級,專注於網路,不如ace那麼臃腫龐大 源 相當精煉 易讀 跨平台,支援windows linux bsd和mac os 支援多種i o多路復用技術,epoll poll dev poll sel...
libevent原始碼深度剖析
序幕 張亮上來當然要先誇獎啦,libevent 有幾個顯著的亮點 事件驅動 event driven 高效能 輕量級,專注於網路,不如ace那麼臃腫龐大 源 相當精煉 易讀 跨平台,支援windows linux bsd和mac os 支援多種i o多路復用技術,epoll poll dev pol...