我实现了调度程序 任务委托调度程序而不是任务窃取调度程序。所以这个方法的基本思想是每个线程都有自己的私有本地队列。每当产生任务时,在任务进入本地队列之前,会在队列之间进行搜索操作,并通过比较每个队列的大小来找到最小大小的队列。每次使用这个最小大小的队列来将任务排入队列。这是一种将工作压力从繁忙线程的队列中转移并将作业委托给最不繁忙线程的队列的方法。
这种调度技术的问题是,我们不知道每个任务需要多少时间才能完成。IE。队列可能具有最小计数,但任务可能仍在运行,另一方面队列可能具有更高值的计数器,但任务可能很快完成。有什么想法可以解决这个问题吗?
我正在使用我们自己的多线程库中的 linux、C++ 编程语言来实现多速率同步数据流范例。