为什么调用fork()比调用pthread_create()需要更长的时间?

时间:2011-02-14 18:42:45

标签: pthreads fork createprocess

我想知道这个,是因为他们只需要一个堆栈和寄存器来存储寄存器,所以创建起来很便宜吗?

非常感谢:)

1 个答案:

答案 0 :(得分:4)

fork()必须克隆整个进程及其所有相关的内核数据结构,包括文件句柄,内存等。虽然这可以通过设置适当的写时复制标志来懒散地完成,但是创建一个新线程要做的工作要多得多,只需共享相同的文件句柄和内存。