スケジューリングパラメタは 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, ¶m);
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を戻します。
pthread の優先順位は、子スレッドを生成する前に優先順位属性を設定するか、親スレッドの優先順位を変更してまた戻すのいずれかの方法で管理できます。