温馨提示×

linux pthread怎样设置线程优先级

小樊
81
2024-12-29 03:08:13
栏目: 智能运维

在Linux中,您可以使用pthread_setschedprio()函数来设置线程的优先级

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

void *thread_function(void *arg) {
    printf("Thread is running.\n");
    return NULL;
}

int main() {
    pthread_t thread_id;
    struct sched_param param;
    int priority;

    // 创建一个新线程
    if (pthread_create(&thread_id, NULL, thread_function, NULL) != 0) {
        perror("Failed to create thread");
        exit(EXIT_FAILURE);
    }

    // 设置线程优先级
    priority = 10; // 您可以根据需要设置不同的优先级值(范围为-20到19)
    param.sched_priority = priority;
    if (pthread_setschedprio(thread_id, &param) != 0) {
        perror("Failed to set thread priority");
        exit(EXIT_FAILURE);
    }

    // 等待线程完成
    pthread_join(thread_id, NULL);

    return 0;
}

在这个示例中,我们首先创建了一个名为thread_function的线程函数。然后,在main函数中,我们使用pthread_create()创建一个新线程,并使用pthread_setschedprio()设置其优先级。请注意,您需要根据您的需求设置合适的优先级值(范围为-20到19)。最后,我们使用pthread_join()等待线程完成。

0