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