Why does it take longer to call a fork() than it does to call pthread_create()?

115 Views Asked by At

I was wondering this, is it because they only need a stack and storage for registers so they are cheap to create ?

Thanks a lot :)

1

There are 1 best solutions below

0
On BEST ANSWER

fork() has to clone the entire process and all its associated kernel data structures, including file handles, memory, and so forth. Though this might be done lazily by setting appropriate copy-on-write flags, it is a lot more work than creating a new thread, which just shares the same file handles and memory.