Ожидание завершения потока
#include <pthread.h>int pthread_join( pthread_t thread,void **value_ptr );
NULL
или указатель на переменную, где функция может хранить значение, которое возвращает pthread_exit().libc
Функция pthread_join() блокирует вызывающий поток в ожидании терминирования потока thread до тех пор, пока последний не терминируется. Если указатель value_ptr не равен NULL
и pthread_join() завершается успешно, то по этому адресу записывается аргумент функции pthread_exit(). Если целевой поток прерывается, а не завершается, value_ptr устанавливается в значение PTHREAD_CANCELED
.
Не-POSIX функция pthread_timedjoin() отличается от pthread_join() только тем, что прерывает ожидание с ошибкой, если поток не завершится за указанное время. |
Целевой поток должен иметь статус joinable. Множественный вызов pthread_join(), pthread_timedjoin(), ThreadJoin() и ThreadJoin_r() на один и тот же поток не допускается. Если pthread_join() завершается успешно – это означает, что поток завершился успешно.
POSIX 1003.1 Threads
pthread_create(), pthread_detach(), pthread_exit(), pthread_timedjoin(), ThreadJoin(), ThreadJoin_r()
Предыдущий раздел: Описание API системной библиотеки