公平調度的實現思路

在程序實現過程中,之前講了很多 複雜的 先後順序邏輯 可以使用時間維度的 timer 來處理。計算機程序設計往往包含了很多設計思路,而有的思路實現優雅 代碼簡潔 不易犯錯 容易拓展。有的思路卻如在沼澤中前行。
在進行公平調度的實現過程中:
假設有多個客戶的任務,每個客戶存在task-list 列表
taskA taskB taskC taskD
爲了保證不飢餓某個客戶,現有兩種實現模式:

模式1:每個客戶開啓等同的線程池去處理
taskA list
線程池1

taskB list
線程池2

taskC list
線程池3

模式2:使用共同的線程池去處理,每次處理從每個客戶的task list 摘取一個task 放入線程池

兩種模式 看起來相差不大,但最終實現起來,模式2卻簡單的多,如果涉及到任務管理,爲什麼呢?https://blog.csdn.net/qq_39015563/article/details/102689350 (一個通用的task 管理策略實現)
https://github.com/zengxiaobai/task-manage 其中未完全實現的 hs 策略即模式1,而ms 和 rs 策略是基於模式2實現的,代碼相對簡潔的多,能否從一個系統抽象的層次闡釋一下,模式2 也更像內核中的進程調度策略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章