【发布时间】:2012-08-16 05:42:09
【问题描述】:
假设我有一个有 4 个线程的进程,我希望它们根据特定的调度算法运行。我搜索并找到了用于选择算法和设置线程优先级的pthread_setschedparam 和sched_setschedparam 函数,但我看到了一件不清楚的事情——pthread_setschedparam 采用线程名称并设置它自己的调度策略。这具体是什么意思,因为我认为一个进程中的所有线程都是根据一个策略调度的,该策略是为整个进程设置的。
这是否意味着如果我使用sched_setschedparam 并设置一个策略(因为它通过它的 PID 引用一个进程),它将确保该进程中的线程根据选定的调度策略运行?
我正在编写的代码是为 Linux 编写的,我使用的是 boost,但是这部分不得不求助于 pthread。
【问题讨论】:
-
内核调度程序正在管理系统上运行的所有任务(即进程或线程)。您不能绝对确定不会安排其他任务(有时它们需要运行)。您可以研究所谓的实时进程调度。
标签: c++ linux pthreads scheduling