fork是否携带线程?

时间:2013-06-05 09:05:19

标签: linux pthreads fork

假设在POSIX语义中,我有一个进程A,它有两个线程,t1和t2。 t1是主线程,然后,在t2中我调用fork to fork进程B。

那么这个新流程B也有t1和t2吗?或者只是有t2?

换句话说,fork也会将多个线程复制到新进程吗?

1 个答案:

答案 0 :(得分:2)

使用单个线程创建子进程 - 调用fork()的线程。父节点的整个虚拟地址空间在子节点中复制,包括互斥锁,条件变量和其他pthreads对象的状态;使用pthread_atfork(3)可能有助于处理这可能导致的问题。

Man 2 fork Manual