调度进程内的线程

时间:2012-08-20 21:19:43

标签: c++ linux pthreads scheduling

假设我有一个包含4个线程的进程,我希望它们根据特定的调度算法运行。我搜索并找到pthread_setschedparamsched_setschedparam函数来选择算法和设置线程的优先级,但我看到一件事情不清楚 - pthread_setschedparam获取一个线程名称并设置它自己的调度政策。具体是什么意思,因为我认为流程中的所有线程都是根据一个策略来安排的,该策略是为整个流程设置的。 这是否意味着如果我使用sched_setschedparam并设置策略(因为它通过它的PID引用进程),它将确保该进程中的线程根据选定的调度策略运行?

我写的代码是针对Linux的,我使用的是boost,但是不得不求助于pthreads。

1 个答案:

答案 0 :(得分:3)

pthread_setschedparam设置单个线程的调度参数。 sched_setscheduler设置整个流程的计划参数。不同的线程确实可以有不同的调度策略。