Я новичок в программировании на C и в данный момент пытаюсь разобраться в библиотеке pthreads и многопоточности в целом.
Вопрос 1:
Когда и почему отсоединение темы — хороший вариант. Кажется, что во многих вещах, которые я читал, говорится, что отсоединение потока полезно, когда вы хотите, чтобы поток продолжал существовать независимо от основного потока. На мой взгляд, это означает, что основной поток по какой-либо причине обычно короче. Мне интересно, почему не было бы проще вызвать pthreads_join для потоков, которые мы хотим видеть присоединенными, а затем выйти из основного с помощью pthread_exit(), который, как я полагаю, выходит из основного, не убивая процесс (с помощью какой-то темной магии, которая, я считаю, не повлиять на любые данные или ресурсы, которые были переданы из основного потока в рассматриваемый поток), что фактически приведет к тому же результату, что и отключение потока (?).
Вопрос 2:
В обоих сценарии pthread_detach и основной вызов pthread_exit повлияют ли какие-либо на ресурсы или память, если один или другой из этих потоков завершится, а если нет, опять же, в чем выгода? Похоже, что если не выполняется большое количество потоков (которые приближаются к системным ограничениям), то на самом деле не стоит заморачиваться с недолговечной программой, поскольку вы будете восстанавливать только еще один потенциально легкий процесс для запуска (при условии, что куча и другие ресурсы остаются без изменений, чтобы их не вызвали каким-либо образом из другой ветки).
Будем благодарны за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -exit-from
Отключение потока вместо присоединения к нужным потокам и вызов pthread_exit() из main(), последствия для ресурсов и пам ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение