Многопоточная вилка - PullRequest
18 голосов
/ 19 мая 2011

Может ли функция fork () использоваться для репликации многопоточного процесса.И если так, все потоки будут одинаковыми, а если нет, то почему бы и нет.Если репликация не может быть выполнена с помощью fork, есть ли какая-либо другая функция, которая может сделать это для меня?

Ответы [ 3 ]

16 голосов
/ 19 мая 2011

После разветвления в дочернем элементе работает только один поток. Это стандартное требование POSIX. См. верхний ответ на вопрос ответвление и существующие темы? .

15 голосов
/ 19 мая 2011

Нет, у ребенка будет только одна нить.Формирование потокового процесса не тривиально.(См. Эту статью Threads и fork (): подумайте дважды, прежде чем смешивать их для хорошего краткого изложения).

Я не знаю ни одного способа клонирования процесса и всех его потоков,Я не думаю, что это возможно в Linux.

0 голосов
/ 19 мая 2011

Нет.

Вилка создает новый процесс со своими собственными потоками, копирует дескриптор файла и виртуальную память.

Дочерний процесс НЕ разделяет ту же самую память сего отец.Так что это абсолютно не то же самое.

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