Manpages

名 前

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−2001 に は 、 エ ラ ー EAGAIN も 記 載 さ れ て い る (「 new_level に 指 定 さ れ た 値 を 適 用 す る と 、 シ ス テ ム リ ソ ー ス が 超 過 し て し ま う 」 )。

バ ー ジ ョ ン

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

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 pthread_setconcurrency() と pthread_getconcurrency() は ス レ ッ ド セ ー フ で あ る 。

準 拠

POSIX.1−2001.

注 意

デ フ ォ ル ト の 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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。