libevent開篇

    libevent是一個基於事件的網絡庫,用於管理定時器事件,網絡IO事件,以及信號事件三種事件類型。libevent是一個

單線程的網絡處理庫。但它可以支持多線程,通過創建多個libevent實體(event_base)來實現,memcached即採用這種

方式來實現多線程。

    libevent是一個基於事件的高性能網絡編程庫,對於每個事件,可以指定優先級,高優先級事件將優先處理。

    libevent通過IO多路複用函數,將網絡IO事件,定時器事件以及信號事件統一起來,達到一致性處理的目的。主要流程如下:


在epoll_wait返回後,依次檢測信號事件,IO事件,定時器事件,將符合要求的事件激活,放於激活事件隊列中去,

最後,統一從激活事件隊列中取激活事件,進行處理。信號,IO,超時事件統一在IO多路複用函數上,使整個事件循環

清晰明瞭。


恩,這就算開題了吧,接下來,逐一分析libevent的各個實現細節,力求簡單明瞭。

發佈了122 篇原創文章 · 獲贊 42 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章