Книга: UNIX: разработка сетевых приложений
Функция pthread_join
Функция pthread_join
Мы можем приостановить выполнение текущего потока и ждать завершения выполнения какого-либо другого потока, используя функцию pthread_join
. Сравнивая потоки и процессы Unix, можно сказать, что функция pthread_create
аналогична функции fork
, а функция pthread_join
— функции waitpid
.
#include <pthread.h>
int pthread_join(pthread_t tid, void **status);
Возвращает: 0 в случае успешного выполнения, положительное значение Exxx в случае ошибки
Следует указать идентификатор tid
того потока, завершения которого мы ждем. К сожалению, нет способа указать, что мы ждем завершения любого потока данного процесса (тогда как при работе с процессами мы могли с помощью функции waitpid
ждать завершения любого процесса, задав аргумент идентификатора процесса, равный -1). Мы вернемся к этой проблеме при обсуждении листинга 26.11.
Если указатель status
непустой, то значение, возвращаемое потоком (указатель на некоторый объект), хранится в ячейке памяти, на которую указывает status
.
- Двусмысленность в запросах JOIN
- Тайм-ауты ядра и функция pthread_join()
- Листинг 4.3. Исправленная функция main() из файла thread-create.c
- Функция pthread_self
- Функция pthread_exit
- Функция pthread_detach
- 2.1.3. Функция getopt_long()
- Группировка по встроенным функциям и UDF
- 19.1.1. Функция jQuery()
- Функция strcmp( )
- Управление функциями узла
- Функция программного обеспечения