thrd_create
From cppreference.com
| ヘッダ <threads.h>で定義 |
||
| int thrd_create( thrd_t *thr, thrd_start_t func, void *arg ); |
(C11 以降) | |
関数funcを実行する新しいスレッドを作成します。関数は func(arg) として呼び出されます。
成功した場合、thrが指すオブジェクトには新しいスレッドの識別子が設定されます。
この関数の完了は、スレッドの開始と同期されます。
目次 |
[編集] パラメータ
| thr | - | 新しいスレッドの識別子を格納するメモリ位置へのポインタ |
| func | - | 実行する関数 |
| arg | - | 関数に渡す引数 |
[編集] 戻り値
新しいスレッドの作成が成功した場合は thrd_success。それ以外の場合は、メモリが不足していた場合は thrd_nomem、その他のエラーが発生した場合は thrd_error を返します。
[編集] 注記
スレッド識別子は、スレッドが終了して結合またはデタッチされた後、新しいスレッドで再利用される場合があります。
thrd_start_t 型は int(*)(void*) のtypedefであり、POSIXの同等型 void*(*)(void*) とは異なります。
すべてのスレッドローカルストレージの値(tss_create 参照)は NULL に初期化されます。
関数funcからの戻りは、funcの戻り値と同じ引数で thrd_exit を呼び出すことと同等です。
[編集] 参照
- C17標準 (ISO/IEC 9899:2018)
- 7.26.5.1 The thrd_create function (p: 279)
- C11標準 (ISO/IEC 9899:2011)
- 7.26.5.1 The thrd_create function (p: 383)
[編集] 関連項目
| (C11) |
スレッドをデタッチする (関数) |
| (C11) |
スレッドが終了するまでブロックする (関数) |
| C++ ドキュメント(thread)
| |