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