тема, касающаяся темы POSIX - PullRequest
0 голосов
/ 22 марта 2012

Как поток знает, когда выходить?

СИТУАЦИЯ:

- в то время как основная программа должна ждать завершения потоков.

-Это можно сделать с помощью функции-прототипа pthread_join.

- в конце концов, вызов этой функции ожидает завершения потока, идентификатор которого задается самим потоком.

1 Ответ

2 голосов
/ 22 марта 2012

После того, как вы вызвали pthread_join(ptherad_t &var), главное будет ждать, пока не завершатся все потоки, для которых вы вызвали join.

как только все потоки завершат свои задачи, когда он вызывает pthread_exit(NULL) main выйдет.

внутри потока после выполнения его задачи вам нужно вызвать pthread_exit(NULL), что остановит освобождение потока. Но это не обязательно, и поток может просто вернуться, что означает, что поток завершен.

когда он (поток) вызывает pthread_exit(NULL), вызывающий поток завершает работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...