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

スケジューリングパラメタの設定

pthread_attr_setschedparam(3T)

pthread_attr_setschedparam(3T) は、スケジューリングパラメタを設定します。

スケジューリングパラメタは param 構造体で定義します。ただし、サポートされるのは優先順位だけです。新たに生成されるスレッドは、この方針で動作します。


プロトタイプ:

int	pthread_attr_setschedparam(pthread_attr_t *tattr,
    const struct sched_param *param);

#include <pthread.h>

pthread_attr_t tattr;
int newprio;
sched_param param;
newprio = 30;

/* 優先順位を設定する。それ以外は変更なし */
param.sched_priority = newprio;

/* 新しいスケジューリングパラメタを設定する */
ret = pthread_attr_setschedparam (&tattr, &param);

戻り値

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


EINVAL

param の値が NULL か、tattr の値が無効です。

pthread の優先順位は、子スレッドを生成する前に優先順位属性を設定するか、親スレッドの優先順位を変更してまた戻す、のいずれかの方法で管理できます。