[c언어] 스레드 우선순위(thread priority) 설정

이번에는 C언어에서의 스레드 우선순위 설정에 대해 알아보겠습니다.

라이브러리 사용

C언어에서 스레드를 다루는 데에는 주로 POSIX 스레드 (pthread) 라이브러리가 사용됩니다. POSIX 스레드는 다양한 운영체제와 호환되며, 대부분의 유닉스 기반 시스템에서 사용할 수 있습니다.

스레드 우선순위 설정 방법

POSIX 스레드 라이브러리에서는 pthread_attr_setschedparam 함수를 사용하여 스레드의 우선순위를 설정할 수 있습니다. 이 함수를 사용하기 위해서는 pthread_attr_t 타입의 변수를 생성하고 pthread_attr_init 함수를 사용하여 초기화해야 합니다. 그 후 pthread_attr_setschedparam 함수를 사용하여 우선순위를 설정할 수 있습니다.

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

void *thread_function(void *arg) {
    // 스레드 동작 내용
    return NULL;
}

int main() {
    pthread_t thread;
    pthread_attr_t attr;
    struct sched_param param;

    pthread_attr_init(&attr);
    pthread_attr_getschedparam(&attr, &param);
    param.sched_priority = 10;  // 원하는 우선순위 값으로 설정
    pthread_attr_setschedparam(&attr, &param);

    pthread_create(&thread, &attr, thread_function, NULL);

    // 스레드 생성 후의 동작
    pthread_join(thread, NULL);
}

위의 코드 예제에서는 pthread_attr_setschedparam 함수를 사용하여 스레드의 우선순위를 10으로 설정하는 방법을 보여줍니다.

주의사항

스레드 우선순위 설정에 대해 설명해본 것은 어떠신가요? 더 궁금한 점이 있으시면 언제든지 물어보세요!