1、建立event_base要使用event_base_new()函式。
2、新增事件,按這個順序:
evtimer_set /event_set
event_base_set
event_add
3、執行緒函式裡使用
event_base_dispatch
4、要退出dispatch迴圈使用event_base_loopbreak
5、釋放event_base使用event_base_free
另外,如果event_base_new和event_base_free不在同乙個執行緒裡操作,需要加鎖。
我都在子執行緒裡進行這兩個操作,所以未加鎖,目前執行正常。而event_base_loopbreak是在主線程裡呼叫的。
libevent多執行緒
功能 主線程同時監聽定時器事件和io事件,工作執行緒簡單的監聽io事件。主線程每隔一秒種嚮工作執行緒傳送一條字串資訊 工作執行緒顯示該資訊並回顯給主線程 該示例演示了主線程如何同時監聽多個事件。makefile eventtest eventtest.c gcc wall g levent lpth...
libevent實現多執行緒
一線程的初始化 1執行緒物件 在進行事件驅動時,每個執行緒需建立自己的事件根基。由於libevent未提供執行緒之間通訊的方式,我們採用管道來進行執行緒的通訊。同時為方便主線程分配執行緒,我們還需保留各個執行緒的id號。因此我們採用如下結構來保留每個執行緒的有關資訊。typedef struct l...
多執行緒程式設計
1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...