如何在Linux中配置上下文切换时间片?

时间:2013-12-06 07:44:16

标签: linux pthreads

我有以下代码。

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void* a(void* ptr) {
while(1){
    printf("1");
    printf("2");
    printf("3");
    printf("4");
}
}

int main(int argc, char** argv) {
        pthread_t t;
        pthread_create(&t, NULL, a, 0);
        while(1){
            printf("a");
            printf("b");
            printf("c");
            printf("d");
    }
    pthread_join(t, NULL);
    return 0;
}

此代码的结果是“abcdabcdabcdcdcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdcd3434123412341234 ...........” 但我希望它们像“ab12c3d4a1bcda23b ......”一样混合 如何配置线程的调度时间片? 这有可能吗?

提前谢谢

1 个答案:

答案 0 :(得分:-1)

您可以通过将sched参数(pthread_setschedparam(3))设置为例如SCHED_RR来修改计划行为(RR表示循环)。 SCHED_FIFOSCHED_RRSCHED_OTHER默认为SCHED_OTHER