PTHREAD_CREATE(3) |
FreeBSD Library Functions Manual |
PTHREAD_CREATE(3) |
名前
pthread_create -新しいスレッドを生成する
書式
#include <pthread.h>
int pthread_create(pthread_t *
thread
, pthread_attr_t *
attr
, void * (*
start_routine
)(void *), void *
arg
);
説明
pthread_create は呼び出しスレッドと並行して実行する、新しい制御スレッドを生成する。新しいスレッドは、
arg を第 1 引数とする
start_routine という関数になる。新しいスレッドは、
pthread_exit(3) を呼び出すことによって明示的に終了するか、関数
start_routine から返ることで暗黙的に終了する。後者の場合は、
start_routine の終了コードとして返す結果を引数として
pthread_exit(3) を呼び出すことに等しい。
引数
attr には、その新しいスレッドに適用するスレッド属性を指定する。スレッド属性に関する完全なリストは
pthread_attr_init(3) に見つけることができる。引数
attr はまた
NULL をとることができ、その時はデフォルトの属性が用いられる: 生成したスレッドは合流可能で (つまりデタッチされない)、デフォルト (つまりリアルタイムではない) のスケジューリング方針になる。
返り値
成功すると新しく作成したスレッドの識別子が引数
thread の指す領域へ格納され、 0 が返る。エラーの場合、非 0 のエラーコードが返る。
エラー
-
EAGAIN
-
新しいスレッドのプロセスを生成するための十分なシステム資源がない。
-
EAGAIN
-
PTHREAD_THREADS_MAX よりも多くのスレッドが既にアクティブである。
著者
Xavier Leroy <Xavier.Leroy@inria.fr>
関連項目
pthread_exit(3),
pthread_join(3),
pthread_detach(3),
pthread_attr_init(3).