【发布时间】:2013-01-08 13:25:36
【问题描述】:
我正在尝试使用多线程实现一种新的调度技术。每个线程都有自己的私有本地队列。这个想法是,每次从程序线程创建任务时,它应该在队列中搜索最小队列大小(任务数量较少的队列)并入队。 线程间负载平衡的一种方式,其中不那么繁忙的队列更多地排队。
您能否建议一些逻辑(或)想法,如何从编程的角度动态地在给定队列中找到最小大小的队列。
我正在开发 Visual Studio 2008,我们自己的多线程库中的 C++ 编程语言实现了多速率同步数据流范例。
【问题讨论】:
-
您是否有理由不能在所有线程中使用 single 队列?这样就不会出现平衡队列大小的问题。
-
@NPE:有多个队列,你可以用单写/读模式有效地实现它们。
-
@NPEyes 使用线程本地队列将有效地实现具有单个写入器/读取器模式的每个线程
标签: c++ multithreading scheduling task-queue