C言語/標準ライブラリ/threads.h
表示
このページ「C言語/標準ライブラリ/threads.h」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。
ISO/IEC 9899:2011(C11)で標準に追加されたヘッダー<threads.h>
では、複数のスレッド実行をサポートするマクロを定義し、型、列挙定数、および関数を宣言しています[1]。
ヘッダー<threads.h>
は、ヘッダー<time.h>
を(暗黙に)インクルードします。
<threads.h>
をインクルードすると、<time.h>
が(暗黙に)インクルードされます[1]。
マクロ __STDC_NO_THREADS__ を定義している実装は、このヘッダを提供する必要はなく、その機能をサポートする必要もありません[1]。
マクロ
[編集]- thread_local
- キーワード _Thread_local に展開されます。
- ONCE_FLAG_INIT
- once_flag 型のオブジェクトを初期化するために使用できる値に展開されます。
- TSS_DTOR_ITERATIONS
- デストラクタが最大で何回実行されるかを表す整数の定数式に展開されます。
型
[編集]- cnd_t
- 条件変数の識別子を保持する完全なオブジェクトタイプです。
- thrd_t
- スレッドの識別子を保持する完全なオブジェクトタイプです。
- tss_t
- スレッド固有のストレージポインタの識別子を保持する完全なオブジェクトタイプです。ポインタです。
- mtx_t
- ミューテックスの識別子を保持する完全なオブジェクトタイプです。
- tss_dtor_t
- スレッド固有のストレージポインタのデストラクタとして使用される関数ポインタ型のvoid (*)(void*)です。
- thrd_start_t
- 関数ポインタ型 int (*)(void*) であり,新しいスレッドを作成するために thrd_create() に渡されます。
- once_flag
- call_onceが使用するフラグを保持する完全なオブジェクトタイプです。
列挙された定数は以下の通りです。
- mtx_plain
- タイムアウトもテストもリターンもサポートしないミューテックス・オブジェクトを作るためにmtx_init()に渡されます。
- mtx_recursive
- 再帰的ロックをサポートするミューテックス・オブジェクトを作るためにmtx_init()に渡されます。
- mtx_timed
- タイムアウトをサポートするミューテックス・オブジェクトを作るためにmtx_init()に渡されます。
- thrd_timedout
- 要求されたリソースを取得することなく、呼び出しで指定された時間に達したことを示すために、timed wait関数から返されます。
- thrd_success
- 要求された操作が成功したことを示すため、関数から返されます。
- thrd_busy
- テストおよびリターン関数によって要求されたリソースがすでに使用されているために、要求された操作が失敗したことを示すため、関数から返されます。
- thrd_error
- 要求された操作が失敗したことを示すため、関数から返されます。
- thrd_nomem
要求された操作が、メモリを割り当てられなかったために失敗したことを示すため、関数から返されます。
関数
[編集]初期化関数
[編集]状態変数関数
[編集]ミューテックス関数
[編集]スレッド固有ストレージ関数
[編集]脚註
[編集]- ^ 1.0 1.1 1.2 N1570 Committee Draft — April 12, 2011 9899:201x(C11). ISO/IEC. p. p.376, §7.26.1 Introduction .
参考文献
[編集]- 国際標準化機構/国際電気標準会議 ISO/IEC 9899:2018(en) Information technology — Programming languages — C(2018-07-05)
- 日本工業標準調査会(当時、現:日本産業標準調査会)『JISX3010 プログラム言語C』2003年12月20日改正