マルチスレッドのプログラミング

スレッド優先順位の設定

pthread_setschedparam(3THR)

pthread_setschedparam(3THR) は、既存のスレッドの優先順位を変更します。この関数はスケジューリング方針には影響を与えません。


プロトタイプ:
int	 pthread_setschedparam(pthread_t tid, int policy,
    const struct sched_param *param);

#include <pthread.h>

pthread_t tid;
int ret;
struct sched_param param;
int priority;

/* sched_priority がスレッドの優先順位になる */
sched_param.sched_priority = priority;

/* サポートされている方針のみ。それ以外は ENOTSUP を生じる */
policy = SCHED_OTHER;

/* 対象スレッドのスケジューリングパラメタ */
ret = pthread_setschedparam(tid, policy, &param); 

戻り値

正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると、この関数は失敗し、対応する値を返します。


EINVAL

設定しようとした属性の値が無効です。


ENOTSUP

サポートされていない属性値を設定しようとしました。