首先它是通過指向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 採用了多執行緒 多核心技術,所以在乙個時鐘週期內可以運算多條指令。但是同時運算的指令數也遠遠小於系統中的程序總數 那問題來了 誰應該先運算,誰應該後運算呢?這就需...