Зачем использовать fork в простой программе? - PullRequest
1 голос
/ 05 марта 2012

Я изучаю основы fork ().Одна из программ, которую мне предложили работать, имеет несколько функций, которые должны запускаться 1000 раз.И опять же, за исключением разветвленного процесса, предположительно потому, что он быстрее.

Мой вопрос состоит в том, почему бы быстрее запускать простые функции (которые создают массивы, связанные списки и выполнять системные вызовы) в разветвленном процессе, посколькуразве вилка не делает полную копию оригинальной программы?

1 Ответ

3 голосов
/ 06 марта 2012

Как правило, у родителя нет причин, чтобы разветвлять одного потомка для выполнения такой работы, но если родитель разветвляется несколько потомков, то эта работа может быть распределена между несколькими процессорами или несколькими модулями. работы, по крайней мере, можно запланировать, чтобы оптимально использовать один процессор, если разветвленным детям когда-либо придется ждать ввода-вывода или долго выполнять системный вызов.

В настоящее время потоки чаще используются для такого рода вещей, поскольку потоки используют меньше ресурсов, чем новые процессы, но это все равно является хорошим упражнением в обучении.

...