Namespaces
Variants

thrd_create

From cppreference.net
ヘッダーで定義 <threads.h>
int thrd_create ( thrd_t * thr, thrd_start_t func, void * arg ) ;
(C11以降)

関数 func を実行する新しいスレッドを作成します。この関数は func ( arg ) として呼び出されます。

成功した場合、 thr が指すオブジェクトは新しいスレッドの識別子に設定されます。

この関数の完了は synchronizes-with スレッドの開始となります。

目次

パラメータ

thr - 新しいスレッドの識別子を格納するメモリ位置へのポインタ
func - 実行する関数
arg - 関数に渡す引数

戻り値

thrd_success 新しいスレッドの作成が成功した場合。それ以外の場合は、 thrd_nomem メモリ不足の場合、または thrd_error その他のエラーが発生した場合を返します。

注記

スレッド識別子は、スレッドが終了し、結合(join)または分離(detach)された後、新しいスレッドに対して再利用される可能性があります。

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 thrd_create関数 (p: 279)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.26.5.1 thrd_create関数 (p: 383)

関連項目

スレッドをデタッチする
(関数)
スレッドが終了するまでブロックする
(関数)