接下來是重點了,多優先順序任務的實現。之前都是給個時鐘,然後按時的調換任務。現在我們要更智能一些了,根據優先順序來調整任務的調換。更高端更好玩!

當然,首先要介紹一下一種新的數據結構,點陣圖數據結構

可以對它各種騷操作:

比如初始化清零操作

置1操作

清除操作

尋找第一個1的位置

分組查找,可以加速查找效率。每8位一組

具體代碼實現

點陣圖對應的就是不同優先順序的就緒列表。

雙向鏈表對應的是延時任務列表,每次在時鐘節拍下,延時時間--,直到減到0時,將任務移動到就序列表,等待被執行。

是一個延時累加的過程,後面的肯定比前面延時時間長,所以就可以快速的按順序執行。


來看看一個實例:


推薦閱讀:
相關文章