Ожидает ли pthread_detach завершения дочернего процесса, как это делает pthread_join?

#pthreads #posix

#pthreads #posix

Вопрос:

Я хотел знать, будет ли pthread_detach останавливать родительский поток до тех пор, пока дочерний поток не завершится, или он продолжит выполнение ??… Поскольку pthread_join ожидает завершения дочернего потока, а затем продолжает…

Ответ №1:

Я полагаю, что цель pthread_detach — указать, что вы не собираетесь вызывать pthread_join в данном потоке. Он не блокируется. Вы бы сделали это, потому что реализация pthread должна отслеживать тот факт, что поток завершился, и какое значение для его завершения в случае более позднего pthread_join . Поэтому вам следует либо вызвать pthread_join, чтобы освободить это пространство во внутренней структуре данных, либо вызвать pthread_detach, чтобы указать, что пространство не должно быть зарезервировано.