Не обязательно; вы всегда можете отсоединить поток, если не хотите явно его ждать.
Есть несколько вещей, которые следует учитывать:
- Если вы не присоединитесь к неотсоединенному потоку, он станет потоком зомби (да, есть такие вещи)
- Если вы не присоединитесь к потоку, ваш основной поток может закончиться до того, как закончится дочерний процесс
- После того, как вы отсоедините нить, нет возможности снова прикрепить ее
Как вы отсоединяете нить? Есть два способа:
detachstate = 1;
rc = pthread_attr_setdetachstate(&attr, detachstate);
if (rc) {
handle error;
}
pthread_create(&thr, &attr, th_fun, NULL);
И второй способ
void *th_fun(void *arg)
{
pthread_detach(pthread_self());
}