マルチスレッドのプログラミング

戻り値

正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると、pthread_join() は失敗し、次の値を返します。


ESRCH

tid で指定したスレッドは、現在のプロセス内の切り離されていない正しいスレッドでありません。


EDEADLK

tid に呼び出しスレッドを指定しました。


EINVAL

tid の値が無効です。

pthread_join() ルーチンの引数は 2 つあり、ある程度柔軟な使い方ができます。特定のスレッドが終了するまで待つ場合は、そのスレッドの識別子を第 1 引数として指定します。

終了したスレッドの終了コードを調べたい場合は、それを受け取る領域のアドレスを指定します。

pthread_join() は、切り離されていないスレッドに対してだけ有効であることに注意してください。終了時のタイミングで特に同期をとる必要がないスレッドは、切り離して生成してください。

切り離されたスレッドが頻繁に使用するスレッドであり、切り離されていないスレッドは特に必要な場合に限って使用するものと考えてください。