libevent中事件優先順序實現過程

2021-08-30 06:53:56 字數 1068 閱讀 6662

首先它是通過指向struct event_list的指標的指標來實現的

在struct event_base結構中體現如下:

/* active event management */

struct event_list **activequeues;

int nactivequeues;

其中nactivequeues為活動事件佇列鍊錶數,對應的優先順序有0到nactivequeues-1級

預設是1

相應的初始化部分在如下**:

int

event_base_priority_init(struct event_base *base, int npriorities)

free(base->activequeues);

}/* allocate our priority queues */

base->nactivequeues = npriorities;

base->activequeues = (struct event_list **)calloc(base->nactivequeues,

npriorities * sizeof(struct event_list *));

if (base->activequeues == null)

event_err(1, "%s: calloc", __func__);

for (i = 0; i < base->nactivequeues; ++i)

return (0);

}

具體體現在活動事件處理函式中如下:

static void

event_process_active(struct event_base *base)

}assert(activeq != null);

for (ev = tailq_first(activeq); ev; ev = tailq_first(activeq))

}}

優先順序值越小越早處理

python優先順序佇列 python 優先順序佇列

簡介 優先順序佇列是基於堆的,關於堆的時候可以參考文章堆,優先順序佇列就是入隊時,會分配乙個優先順序,之後出隊時,根據優先順序出列。如,入隊時 4,a 6,r 3 d 則出隊順序 6,r 4,a 3 d 優先順序佇列的python實現 class priorityqueue object def i...

執行緒中的優先順序

什麼才是執行緒的優先順序 對於執行緒的優先順序呢,我是這麼理解的,乙個學院裡面有好多學生嘛,而輔導員呢,就相當於超管,這麼多學生要選拔優秀畢業生,如果,是按照情面關係的話,優先順序就上場了,作為輔導員,我想讓誰讓第一就讓誰第一,對吧?不瞎扯了,步入乾貨。怎麼才可以將優先順序玩的稍微6一點呢 我還是通...

Linux程序優先順序和調整優先順序

linux 是乙個多使用者 多工的作業系統,系統中通常執行著非常多的程序。但是 cpu 在乙個時鐘週期內只能運算一條指令 現在的 cpu 採用了多執行緒 多核心技術,所以在乙個時鐘週期內可以運算多條指令。但是同時運算的指令數也遠遠小於系統中的程序總數 那問題來了 誰應該先運算,誰應該後運算呢?這就需...