最終更新:2013-01-28 (月) 18:23:24 (4105d)  

pthread_create
Top / pthread_create

新しいスレッドを生成する

int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);

引数

thread

  • pthread_create呼び出し元から生成したスレッドに対して何か処理をする際のスレッド識別情報。
  • スレッドが正常に作成出来た時にthreadにスレッドIDが格納される

attr

  • 生成するスレッドに付加する属性
    • pthread_attr_init?

start_routine

  • 生成されたスレッドが最初に処理を始める関数へのポインタ
  • 複数の引数や返り値を扱いたい場合には、配列や構造体のポインタをvoid *型にキャストして与える

arg

  • start_routineの引き数

スレッドの終了条件

  • スレッドがpthread_exitを呼び出す
  • スレッドがstart_routine()から返る
  • スレッドがキャンセルされる (pthread_cancel)
  • プロセス内のいずれかのスレッドでexitが呼ばれるか、メインスレッドのmain内でreturnが実行される

返り値

  • 成功すると新しく作成したスレッドの識別子が 引数 thread の指す領域へ格納され、 0 が返る。 エラーの場合、非 0 のエラーコードが返る。

参考

関連

  • pthread_join - 指定されたスレッドが終了するのを待つ