Почему для вызова fork () требуется больше времени, чем для вызова pthread_create ()? - PullRequest
0 голосов
/ 14 февраля 2011

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

Большое спасибо:)

1 Ответ

4 голосов
/ 15 февраля 2011

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

...