Поток может являться как присоединяемым (по умолчанию), так и отсоединенным. При завершении присоединяемого потока его идентификатор и статус завершения сохраняются до тех пор, пока какой-либо другой поток данного процесса не вызовет pthread_join. Отсоединенный поток функционирует аналогично процессу-демону. После его завершения все ресурсы освобождаются. Никакой другой поток не может ожидать его завершения. Если имеется необходимость ожидания одним потоком завершения другого, лучше оставить последний присоединяемым. Функция pthread_detach делает данный поток отсоединенным: Эта функция вызывается потоком при необходимости изменить собственный статус в формеФункция pthread_detach
#include
int pthread_detach(pthread_t tid);
/* Возвращает 0 в случае успешного завершения, положительное значение Еххх в случае ошибки */
pthread_detach(pthread_self());