Silphire (7255) の日記

2003 年 01 月 05 日
午後 11:01

pthread日記(2) - pthread_join()

スレッドが終了するまでブロックします。

int pthread_join(pthread_t thread, void **value_ptr);

threadで指定したスレッドが終了するまで、現在の処理を中断します。スレッドが既に終了している場合は、すぐに次の処理へ移行します。

2つ目の引数value_ptrは、スレッドの戻り値を取得する為のポインタです。 pthread_create() に書いた通り、スレッドの関数の戻り値はvoid *です。なので、void **で戻り値を受け取るようになっています。

pthread_join()の実行が成功した時は0を、それ以外の、エラーが発生した時にはエラーに対応した値が返されます。

2つのスレッドの間で、互いのスレッドに対してpthread_join()を実行するような場合、互いが互いの終了を待ってデッドロックに陥る可能性があります。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

アレゲは一日にしてならず -- アレゲ見習い

処理中...