Libevent的使用及reactor模型詳解
Libevent 是一個(gè)用C語(yǔ)言編寫(xiě)的、輕量級(jí)的開(kāi)源高性能事件通知庫(kù),主要有以下幾個(gè)亮點(diǎn):事件驅(qū)動(dòng)( event-driven),高性能;輕量級(jí),專注于網(wǎng)絡(luò),不如 ACE 那么臃腫龐大;源代碼相當(dāng)精煉、易讀;跨平臺(tái),支持 Windows、 Linux、 *BSD 和 Mac Os;支持多種 I/O 多路復(fù)用技術(shù), epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定時(shí)器和信號(hào)等事件;注冊(cè)事件優(yōu)先級(jí)。
libevent的流程可以分為三步:定義框架,注冊(cè)事件,啟動(dòng)事件循環(huán)(epoll檢測(cè)事件是否發(fā)生,發(fā)生的時(shí)候,通知子線程調(diào)用回調(diào)函數(shù)//此過(guò)程會(huì)阻塞)下圖為編寫(xiě)的框架
// 創(chuàng)建框架 struct event_base* base = NULL; base = event_base_new(); // 添加事件 struct event* ev = NULL; ev = event_new(base, fd, EV_READ | EV_PERSIST, read_cb, NULL); event_add(ev, NULL); // 事件循環(huán) event_base_dispatch(base); // 釋放資源 event_free(ev); event_base_free(base); close(fd); return 0; }
Reactor:事件源(描述符)、Reactor 框架、多路復(fù)用機(jī)制和事件處理程序
事件源可以理解為我們的文件描述符,多路復(fù)用機(jī)制是我們的IO模型(select,poll,epoll),事件處理程序理解為回調(diào)函數(shù)。
到此這篇關(guān)于Libevent的使用及reactor模型的文章就介紹到這了,更多相關(guān)Libevent reactor模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
atoi和itoa函數(shù)的實(shí)現(xiàn)方法
本文介紹了,atoi和itoa函數(shù)的實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-03-03使用C++將處理后的信號(hào)保存為PNG和TIFF格式
在信號(hào)處理領(lǐng)域,我們常常需要將處理結(jié)果以圖像的形式保存下來(lái),方便后續(xù)分析和展示,C++提供了多種庫(kù)來(lái)處理圖像數(shù)據(jù),本文將介紹如何使用stb_image_write庫(kù)保存為PNG格式圖像以及使用OpenCV庫(kù)保存為T(mén)IFF格式圖像,需要的朋友可以參考下2025-02-02如何優(yōu)雅地使用c語(yǔ)言編寫(xiě)爬蟲(chóng)
如何優(yōu)雅地使用c語(yǔ)言編寫(xiě)爬蟲(chóng),本文介紹cspider爬蟲(chóng)庫(kù),這個(gè)cspider爬蟲(chóng)庫(kù)的使命在于,我們能夠使用c語(yǔ)言,依然能夠優(yōu)雅地編寫(xiě)爬蟲(chóng)程序,需要的朋友可以參考下2015-12-12C++實(shí)現(xiàn)歌手比賽評(píng)分系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)歌手比賽評(píng)分系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03OpenCV利用K-means實(shí)現(xiàn)根據(jù)顏色進(jìn)行圖像分割
K-means是一種經(jīng)典的無(wú)監(jiān)督聚類算法---不需要人工干預(yù)。本文將通過(guò)K-means算法實(shí)現(xiàn)根據(jù)顏色進(jìn)行圖像分割的效果,感興趣的小伙伴可以嘗試一下2022-10-10基于Opencv實(shí)現(xiàn)顏色識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于Opencv實(shí)現(xiàn)顏色識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07linux環(huán)境下C++實(shí)現(xiàn)俄羅斯方塊
這篇文章主要為大家詳細(xì)介紹了linux環(huán)境下C++實(shí)現(xiàn)俄羅斯方塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06