리눅스에서 SetThreadPriority
에 해당하는 것은 pthread_setschedprio(pthread_t thread, int priority)
입니다.
man page을 확인하십시오.
편집 :
#include <pthread.h>
int main()
{
pthread_t thId = pthread_self();
pthread_attr_t thAttr;
int policy = 0;
int max_prio_for_policy = 0;
pthread_attr_init(&thAttr);
pthread_attr_getschedpolicy(&thAttr, &policy);
max_prio_for_policy = sched_get_priority_max(policy);
pthread_setschedprio(thId, max_prio_for_policy);
pthread_attr_destroy(&thAttr);
return 0;
}
이 샘플은 SCHED_OTHER이다 기본 스케줄링 정책입니다 : 여기에 샘플 코드에 해당합니다.
EDIT : 사용 전에 스레드 속성을 초기화해야합니다.
()'. – caf
@caf 힌트를 보내 주셔서 감사합니다. 코드 스 니펫을 업데이트했습니다. –
POSIX 표준 (제공된'phtread__setschedprio (3)'매뉴얼 페이지에서 http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_08에 이르는 링크를 따라 가면서).html # tag_02_08_04_01)는'SCHED_OTHER' 정책에서 실행중인 쓰레드에'pthread_setschedprio (3)'을 사용한다고 언급하고 있습니다. 리눅스에서는 우선 순위 값의 범위가'[0, 0]'이므로 실제 답변을 사용하지 않는 한 리눅스에서는 쓸모가 없습니다 (SCHED_FIFO' 또는'SCHED_RR')에 대한 질문에 의해 호출되지 않습니다. – FooF