在多线程中调度任务
Scheduling tasks in multithreads
我正在尝试在多线程系统中安排任务。 我的想法是每个线程都有一个本地队列,每个线程将从其本地队列中获取作业。但是当线程达到某个阈值时,它不应该获取作业,而是应该将作业转移到低于阈值级别的线程。
我的疑问是如何为线程设置阈值。
此问题的另一种安排是让已完成队列的线程能够从其他人的队列中获取工作。这更广为人知的是"工作窃取",是一种众所周知的调度算法,例如
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.8905
您使用的是什么线程库?
我在我所有的线程项目中都使用两个OSS库TBB和Cilk Plus。 这些更高级别运行时提供的一项功能是,它们以有效利用处理器资源的方式自动将任务调度到线程上。 运行时在负载平衡许多任务方面也非常有效。
www.threadingbuildblocks.org
www.cilkplus.org
相关文章:
- 5 CPU的任务调度N进程
- openMp 动态调度与按处理时间排序任务时的 LPT 调度相同吗?
- 任务调度程序API错误80041318
- 在多线程中调度任务
- 如何使用Microsoft PPL轻量级任务调度程序实现后退
- 使用 Boost 协程实现多任务调度程序和执行程序
- 使用 clock() 函数调度任务时出现问题
- 英特尔 tbb 任务调度是否适用于 DBMS
- 用于流程/任务调度的简单离散事件模拟库 (C++)
- 需要在原生代码中调度一个计时器任务,用于安卓 ndk 开发
- Qt App在任务调度程序启动时不加载sql驱动程序
- 我应该在高度动态的系统中使用优先级队列来调度任务(函数等)吗
- 任务调度程序:从当前时刻开始,每小时运行一次任务
- 应用程序是不可见的,如果没有任何用户登录从任务调度程序启动
- 任务调度程序2.0的任务编辑器对话框
- 以编程方式为任务调度程序创建/删除任务
- Arduino,任务调度程序延迟
- 任务调度程序:如何调度登录时执行的任务
- 任务委派调度程序
- 如何在 boost::wait_for_any 中正确调度任务,同时考虑到线程数