ветвление и существующие потоки?

Не технологический подкаст, но я действительно должен упомянуть FreelanceRadio. Действительно большой и иногда веселый ресурс. Я слушаю их утром на способе работать. И иногда чувствуйте себя действительно глупыми просто хихикание один: P

14
задан osgx 6 July 2011 в 13:31
поделиться

2 ответа

В настоящее время потоки в Linux пытаются сохранить соответствие POSIX. Реплицируется только вызывающий поток, а не другие потоки (обратите внимание, что, например, в Solaris вы можете выбрать, что будет делать вилка в зависимости от того, на какую библиотеку вы ссылаетесь)

Из http://www.opengroup.org/onlinepubs/000095399 /functions/fork.html (POSIX 2004):

Процесс должен быть создан с одиночный поток. Если многопоточный процесс вызывает fork () , новый процесс должен содержать копию вызова поток и все его адресное пространство, возможно, включая государства мьютексы и другие ресурсы. Следовательно, чтобы избежать ошибок, дочерний процесс может выполняться только асинхронно-сигнально-безопасные операции до например, одна из функций exec называется. Вилка обработчики могут быть созданы посредством функции pthread_atfork () в чтобы поддерживать приложение инварианты для вызовов fork () .

Спецификация POSIX 2018 для fork () аналогична.

18
ответ дан 1 December 2019 в 13:34
поделиться

Потоки не наследуются от дочернего процесса в системе Linux с помощью fork (). Подробный источник находится здесь: http://linas.org/linux/threads-faq.html

0
ответ дан 1 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: