PTHREAD_GETCONCURRENCY(3) | FreeBSD Library Functions Manual | PTHREAD_GETCONCURRENCY(3) |
名称
pthread_getconcurrency, pthread_setconcurrency — 並行処理のレベルを取得するか設定するライブラリ
POSIX Threads Library (libpthread, -lpthread)書式
#include < pthread.h> int
pthread_getconcurrency( void);
int
pthread_setconcurrency( int new_level);
解説
pthread_setconcurrency() 関数は、アプリケーションがその希望の並行処理レベル new_level のスレッド実装に通知することを可能にします。この関数呼び出しの結果としての実装によって提供される並列処理の実際のレベルは、不特定です。 new_level が 0 である場合、あたかも pthread_setconcurrency() が呼ばれないかのように、それは、実装にその分別で並列処理レベルを維持させます。 pthread_getconcurrency() 関数は、前の呼び出しによって pthread_setconcurrency() 関数に設定された値を返します。 pthread_setconcurrency() 関数が以前に呼ばれなかった場合、この関数は、実装が並列処理レベルを維持していることを示すために 0 を返します。アプリケーションが pthread_setconcurrency(), を呼ぶ場合、それは、その希望の並列処理レベルの実装に通知します。その実装は、要求ではなくヒントとしてこれを使用します。戻り値
成功すれば、 pthread_setconcurrency() 関数は、0 を返します。そうでなければ、エラーを示すためにエラー番号を返します。 pthread_getconcurrency() 関数は、前の呼び出しによって pthread_setconcurrency() に設定された並列処理レベルを常に返します。 pthread_setconcurrency() 関数が呼ばれていない場合、 pthread_getconcurrency() は、0 を返します。エラー
pthread_setconcurrency() 関数は、次の場合に失敗します:- [ EINVAL]
- new_level によって指定された値が負です。
- [ EAGAIN]
- new_level によって指定された値が、システムリソースを超過させます。
アプリケーション使用法
これらの関数の使用は、アプリケーションが依存する根本的な並列処理の状態を変更します。ライブラリ開発者は、それらの使用がアプリケーションのこれらの機能の使用と矛盾するかもしれないので、 pthread_getconcurrency() および pthread_setconcurrency() 関数を使用しないように忠告されます。規格
pthread_getconcurrency() と pthread_setconcurrency() 関数は、 Version 2 of the Single UNIX Specification (“SUSv2”) に適合しています。April 11, 2003 | FreeBSD |