PTHREAD_ATTR_SETSCOPE

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

pthread_attr_setscope, pthread_attr_getscope - スレッド属性オブジェクトの contention scope 属性の設定/取得を行う  

書式

#include <pthread.h>

int pthread_attr_setscope(pthread_attr_t *attr, int scope);
int pthread_attr_getscope(const pthread_attr_t *attr, int *scope);

-pthread でコンパイルしてリンクする。
 

説明

pthread_attr_setscope() 関数は、 attr が参照するスレッド属性オブジェクトの contention scope 属性を scope で指定された値に設定する。 contention scope 属性により、スレッドが CPU などのリソースを取り合うスレッド集合が規定される。 POSIX.1 では scope に指定する値として 2 つの値が規定されている。
PTHREAD_SCOPE_SYSTEM
スレッドは、同じスケジューリング割り当てドメイン (一つ以上のプロセッサ のグループ) にある、システム上の全てのプロセスの自分以外の全ての スレッドとリソースを取り合う。 PTHREAD_SCOPE_SYSTEM のスレッドは、スケジューリングポリシーと 優先度に基づき、互いに相対的にスケジューリングされる。
PTHREAD_SCOPE_PROCESS
スレッドは、contention scope が PTHREAD_SCOPE_PROCESS で作成された 同じプロセスの自分以外の全てのスレッドとリソースを取り合う。 PTHREAD_SCOPE_PROCESS のスレッドは、スケジューリングポリシーと優先度 に基づき、同じプロセスの他のスレッドと相対的にスケジューリングされる。 POSIX.1 では、これらのスレッドがシステム上の他のプロセスのスレッド や同じプロセス内の contention scope が PTHREAD_SCOPE_SYSTEM で作成 された他のスレッドとどのようにリソースを取り合うかは、 規定されないままになっている。

POSIX.1 で求められているのは、スレッド実装がこれらの contention scope のうち少なくとも 1 つをサポートすることだけである。 Linux は PTHREAD_SCOPE_SYSTEM をサポートしているが、 PTHREAD_SCOPE_PROCESS はサポートしていない。

複数の contention scope をサポートしているシステムで、 pthread_create(3) を呼び出した際に pthread_attr_setscope() で行ったパラメーター設定を有効にするには、 呼び出し側で pthread_attr_setinheritsched(3) を使って 属性オブジェクト attr の inherit-scheduler 属性を PTHREAD_EXPLICIT_SCHED に設定しておかなければならない。

pthread_attr_getscope() は、 スレッド属性オブジェクト attr の contention scope 属性を scope が指すバッファーに入れて返す。  

返り値

成功すると、これらの関数は 0 を返す。 エラーの場合、0 以外のエラー番号を返す。  

エラー

pthread_attr_setscope() は以下のエラーで失敗する場合がある。
EINVAL
scope に無効な値が指定された。
ENOTSUP
scope に値 PTHREAD_SCOPE_PROCESS が指定された。 この値は Linux でサポートされていない。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
pthread_attr_setscope(), pthread_attr_getscope() Thread safety MT-Safe
 

準拠

POSIX.1-2001, POSIX.1-2008.  

注意

PTHREAD_SCOPE_SYSTEM contention scope では、通常は、一つの ユーザー空間スレッドは一つのカーネルスケジューリングエンティティに 直接結び付けられる。 Linux では、廃止予定の LinuxThreads 実装も新しい NPTL 実装もこれに 該当し、両方とも 1:1 で結び付けられるスレッド実装となっている。

POSIX.1 では、 contention scope 属性のデフォルト値は実装時で定義されるものと規定されている。  

関連項目

pthread_attr_init(3), pthread_attr_setaffinity_np(3), pthread_attr_setinheritsched(3), pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3), pthread_create(3), pthreads(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

スレッド   属性   スケジューリング   pthread   attr   スタック   優先度   領域   ポリシー   デフォルト値   エラーコード   リアルタイム   確保   linuxthreads   保護   格納   LinuxThreads   合流   ユーザ   単位   バイト   初期化   個別   破壊   実装

Linux マニュアル 一覧

関連するコマンド・関数

pthread_attr_setscope.3   pthread_attr_getinheritsched.3   pthread_attr_setinheritsched.3   pthread_attr_getschedpolicy.3   pthread_attr_setschedpolicy.3   pthread_attr_getschedparam.3
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:14 GMT, October 11, 2026