В Linux и fork()
, и ptrheads используют один и тот же системный вызов clone()
, который создает новый процесс.Разница между ними заключается просто в параметрах, которые они отправляют clone()
, при создании нового потока он просто заставляет оба процесса использовать одинаковые отображения памяти.
Помните, что в Linux (и других современных Unixes) памятьотображения, стеки, состояние процессора, PID и другие являются ортогональными характеристиками процесса;так что вы можете создать новый процесс с новым стеком и состоянием процесса (делиться всем остальным) и назвать его потоком.