Man page - pthread_setconcurrency(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

PTHREAD_SETCONCURRENCY

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

名 前

pthread_setconcurrency, pthread_getconcurrency - 並 列 処 理 レ ベ ル の 設 定 /取 得 を 行 う

書 式

#include <pthread.h>

int pthread_setconcurrency(int new_level );
int pthread_getconcurrency(
void );

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

説 明

pthread_setconcurrency () 関 数 は 、 ア プ リ ケ ー シ ョ ン が 希 望 す る 並 列 処 理 レ ベ ル (concurrency level) を ス レ ッ ド 実 装 に 通 知 す る 。 希 望 す る 並 列 処 理 レ ベ ル は new_level で 指 定 す る 。 ス レ ッ ド 実 装 は こ の 情 報 を ヒ ン ト と し て の み 利 用 す る 。 POSIX.1 で は 、 pthread_setconcurrency () の 呼 び 出 し た 結 果 、 ど の よ う な 並 列 度 に な る べ き か は 規 定 さ れ て い な い 。

new_level に 0 を 指 定 す る と 、 ス レ ッ ド 実 装 は 並 列 処 理 レ ベ ル を 実 装 側 で 適 切 と み な し た レ ベ ル に 設 定 す る よ う に な る 。

pthread_getconcurrency () は 、 こ の プ ロ セ ス の concurrency level の 現 在 値 を 返 す 。

返 り 値

成 功 す る と 、 pthread_setconcurrency () は 0 を 返 す 。 エ ラ ー の 場 合 、 0 以 外 の エ ラ ー 番 号 を 返 す 。

pthread_getconcurrency () は 常 に 成 功 し 、 最 後 の pthread_getconcurrency () の 呼 び 出 し で 設 定 さ れ た concurrency level を 返 す 。 pthread_getconcurrency () が そ れ ま で に 一 度 も 呼 び 出 さ れ て い な い 場 合 は 0 が 返 る 。

エ ラ ー

pthread_setconcurrency () は 以 下 の エ ラ ー で 失 敗 す る 場 合 が あ る 。

EINVAL

new_level が 負 で あ る 。

POSIX.1 also documents an EAGAIN error ("the value specified by new_level would cause a system resource to be exceeded").

バ ー ジ ョ ン

こ れ ら の 関 数 は glibc バ ー ジ ョ ン 2.1 以 降 で 利 用 で き る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-31571-1.png

準 拠

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

注 意

デ フ ォ ル ト の concurrency level は 0 で あ る 。

並 列 処 理 レ ベ ル が 意 味 を 持 つ の は M:N ス レ ッ ド 実 装 の 場 合 の み で あ る 。 M:N ス レ ッ ド 実 装 で は 、 あ る 瞬 間 に お い て 、 あ る プ ロ セ ス の ユ ー ザ ー レ ベ ル ス レ ッ ド の 集 合 の サ ブ 集 合 が 、 そ の サ ブ 集 合 の サ イ ズ よ り も 少 な い 数 の カ ー ネ ル の ス ケ ジ ュ ー リ ン グ 実 体 (kernel-scheduling entity) に 結 び 付 け ら れ る 。 並 列 処 理 レ ベ ル を 設 定 す る と 、 そ の ア プ リ ケ ー シ ョ ン の 効 率 的 な 実 行 に 必 要 な カ ー ネ ル の ス ケ ジ ュ ー リ ン グ 実 体 の 数 の ヒ ン ト を 、 ア プ リ ケ ー シ ョ ン は シ ス テ ム に 伝 え る こ と が で き る 。

LinuxThreads と NPTL の ど ち ら も 1:1 ス レ ッ ド 実 装 で あ り 、 並 列 処 理 レ ベ ル を 設 定 し て も 何 の 意 味 も な い 。 言 い 換 え る と 、 Linux で は 、 こ れ ら の 関 数 は 、 他 の シ ス テ ム と の 互 換 性 の た め だ け に 存 在 し 、 プ ロ グ ラ ム の 実 行 に は 何 の 影 響 も 与 え な い と い う こ と で あ る 。

関 連 項 目

pthread_attr_setscope (3), pthreads (7)

こ の 文 書 に つ い て

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