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

スコープの設定

pthread_attr_setscope(3T)

pthread_attr_setscope(3T) は、結合スレッド (PTHREAD_SCOPE_SYSTEM) または非結合スレッド (PTHREAD_SCOPE_PROCESS) を生成します。


注 -

結合スレッドと非結合スレッドの両方とも、指定されたプロセス内でのみアクセスできます。



プロトタイプ:

int	pthread_attr_setscope(pthread_attr_t *tattr,int scope);

#include <pthread.h>

pthread_attr_t tattr;
int ret;

/* 結合スレッド */
ret = pthread_attr_setscope(&tattr, PTHREAD_SCOPE_SYSTEM);

/* 非結合スレッド */
ret = pthread_attr_setscope(&tattr, PTHREAD_SCOPE_PROCESS);

この例には、属性を初期化するもの、デフォルト属性を変更するもの、pthread を生成するものの 3 つの関数呼び出しがあります。


#include <pthread.h>

pthread_attr_t attr;
pthread_t tid;
void start_routine;
void arg;
int ret;

/* デフォルト属性による初期化 */
ret = pthread_attr_init (&tattr);

/* 結合動作 */
ret =  pthread_attr_setscope(&tattr, PTHREAD_SCOPE_SYSTEM);
ret = pthread_create (&tid, &tattr, start_routine, arg);

戻り値

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


EINVAL

tattr の値は無効です。