名前空間
変種
操作

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)

[編集] 関連項目

スレッドをデタッチする
(関数) [編集]
スレッドが終了するまでブロックする
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)