我一直在研究我正在实现的线程池的不同调度算法。由于我正在解决的问题的性质,我可以假设并行运行的任务是独立的,不会产生任何新任务。任务的大小可以不同。
我立即选择了最流行的调度算法“工作窃取”,使用本地作业队列的无锁双端队列,我对这种方法比较满意。但是我想知道是否有任何常见的情况下工作窃取不是最好的方法。
对于这个特定的问题,我对每个单独任务的大小有一个很好的估计。工作窃取没有使用这些信息,我想知道是否有任何调度程序可以提供比使用这些信息进行工作窃取更好的负载平衡(显然具有相同的效率)。
注意。这个问题与上一个问题有关。