【发布时间】:2017-06-21 10:06:02
【问题描述】:
众所周知,在 POSIX 下创建新进程的默认方式是使用 fork()(在 Linux 下,它内部映射为 clone(...))
我想知道的是:众所周知,当调用fork()“子进程是用单个线程创建的--调用fork()的那个”
(参见https://linux.die.net/man/2/fork)。如果例如某个其他线程当前持有锁,这当然会导致问题。对我来说,不分叉进程中存在的所有线程直观地感觉就像“泄漏的抽象”。
所以我想知道:为什么子进程中只会存在调用fork()的线程而不是进程的所有线程?这样做有充分的技术原因吗?
我知道Multithreaded fork 上有一个相关问题,但那里给出的答案并没有回答我的问题。
【问题讨论】:
标签: linux multithreading fork posix