Поток умрет, если вызывающая функция завершится? - PullRequest
0 голосов
/ 21 февраля 2019

Рассмотрим поток t1, который выполняет функцию hello ().Я создаю и вызываю поток t1 из функции func ().Мой вопрос: умрет ли поток t1, если func () завершится, даже если поток еще не закончился и все еще есть над чем работать?

1 Ответ

0 голосов
/ 21 февраля 2019

Потоки не отслеживают, какой поток их создал, и не имеют возможности узнать, завершился ли создание потока.

Завершаются только потоки:

  • , если функция, вызванная при создании потока, завершается

  • , если поток вызывает pthread_exit ()

  • , если поток получает сигнал с помощью pthread_kill (thread_id, sig) и обработчик завершает поток.

  • , если другой поток вызывает pthread_cancel (thread_id).Поток должен знать thread_id потока, который нужно уничтожить, и существуют способы запрета отмены.

  • , если процесс завершается.

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