После того, как вы вызвали pthread_join(ptherad_t &var)
, главное будет ждать, пока не завершатся все потоки, для которых вы вызвали join.
как только все потоки завершат свои задачи,
когда он вызывает pthread_exit(NULL)
main выйдет.
внутри потока после выполнения его задачи вам нужно вызвать pthread_exit(NULL)
, что остановит освобождение потока. Но это не обязательно, и поток может просто вернуться, что означает, что поток завершен.
когда он (поток) вызывает pthread_exit(NULL)
, вызывающий поток завершает работу.