1)为什么线程创建比创建流程更便宜?
2)线程和子进程之间有什么区别?这与上述问题有何关系?
答案 0 :(得分:3)
创建进程时,会分配堆和堆栈内存。另一方面,线程只获得一个堆栈并与父进程共享堆。这意味着即使你只考虑内存分配,创建一个进程比一个线程更“昂贵”。
子进程只是由另一个进程创建的进程。它们是独立的,并获得自己的存储空间。这是an article that goes into some more detail。
答案 1 :(得分:2)
这个问题的答案可能非常依赖操作系统,但一般规则是:
进程的线程与其父进程存在于同一虚拟内存空间中。因此,线程创建比创建进程要便宜,因为底层操作系统不需要创建完整的虚拟内存空间。
子流程只是父进程产生的另一个进程。