假设我有一个包含4个线程的进程,我希望它们根据特定的调度算法运行。我搜索并找到pthread_setschedparam
和sched_setschedparam
函数来选择算法和设置线程的优先级,但我看到一件事情不清楚 - pthread_setschedparam
获取一个线程名称并设置它自己的调度政策。具体是什么意思,因为我认为流程中的所有线程都是根据一个策略来安排的,该策略是为整个流程设置的。
这是否意味着如果我使用sched_setschedparam
并设置策略(因为它通过它的PID引用进程),它将确保该进程中的线程根据选定的调度策略运行?
我写的代码是针对Linux的,我使用的是boost,但是不得不求助于pthreads。
答案 0 :(得分:3)
pthread_setschedparam
设置单个线程的调度参数。 sched_setscheduler
设置整个流程的计划参数。不同的线程确实可以有不同的调度策略。