Libevent

Infobox Software | name = libevent | caption = libevent | author = Azat Khuzhin, Mark Ellzey, Nick Mathewson, Niels Provos | released = | latest release version = 2.1.12 | latest release date = | latest preview version = | latest preview date = | operating system = | platform = 跨平臺 | language = C語言 、 C++ | genre = 網路函式庫 | license = BSD許可證 | website = libevent是一個異步事件處理軟體函式庫 。 libevent是一個提供異步事件通知的軟件庫 。 libevent提供了一組應用程序編程接口 （ API ） ， libevent API提供的機制允許開發者爲事件註冊回調函式 ， 例如文件描述符上的發生了特定事件或者等待特定事件超時 ， 接收到信號的事件 ， 常規的定時器超時事件 。 當事件發生時 ， libevent實例會執行回調函數 。 libevent 在設計上是用來替代很多事件驅動網絡服務器自行實現的事件循環框架的 。 也就是說 ， libevent可以用來取代網路伺服器所使用的事件循環檢查框架 。 libevent 現在支持 / dev / poll ， kqueue ( 2 ) ， POSIX select ( 2 ) ， Windows IOCP ， poll ( 2 ) ， epoll ( 7 ) ， 和 Solaris端口 。 libevent 對實時信號有試驗性支持 。 libevent 暴露出的 API 在全平臺都是一致的 ， 因此 libevent 支持可移植的應用程序開發 ， 並提供 “ 操作系統上最可擴展的事件通知機制 ” 開發者通過 libevent 註冊信號回調 ， 可以編寫 “ 安全 ” 的信號處理程序 ， 因爲用戶提供的信號處理程序都不會在信號 處理上下文中運行 。 由於可以省去對網路的處理 ， 且擁有不錯的效能 ， 有些軟體使用libevent作爲網路底層的函式庫 ， 如 ： memcached 、 Tor 。 libevent由Niels Provos創建 ， 主要由Nick Mathewson維護 ， 以BSD許可證發佈 。