多线程操作锁和线程池非IOCP

易语言 2020-07-15 20:10:56

检查如果当前或较低的优先段中没有当前任务,返回第一个元素
' 否则添加任务到队列并返回空。
seg = __任务权限分割 (_读整数 (任务元素, #任务元素_调度))
任务调度组 = 线程池 + #线程池_任务调度组
.如果真 (_读索引 (任务调度组, seg) ≠ 0) ' 优先级段非空
检查 (_读索引 (任务调度组, seg) ≠ _读整数 (线程池, #线程池_常规任务))
t_next = _读索引 (任务调度组, seg)
.判断循环首 (_读字节 (t_next, #任务元素_调度) > _读字节 (任务元素, #任务元素_调度))
t_next = 节点取后 (t_next)
.如果真 (_读整数 (线程池, #线程池_常规任务) = t_next)
返回 (t_next)
.如果真结束

.判断循环尾 ()
返回 (t_next)
.如果真结束
' 任务放入下一个优先段中