我以前在应用程序中使用过线程,对它的概念非常了解,但是最近在操作系统讲座中我遇到了 fork ()。类似于线程。
我在谷歌上搜索了他们之间的区别,我得知:
- Fork 只不过是一个新进程,看起来与旧进程或父进程完全一样,但它仍然是一个不同的进程,具有不同的进程 ID 和自己的内存。
- 线程是开销较小的轻量级进程
但是,我心里还有一些疑问。
- 什么时候应该更喜欢 fork ()而不是 threading,反之亦然?
- 如果我想将外部应用程序作为子应用程序调用,那么应该使用 fork ()还是线程来调用它?
- 在谷歌搜索时,我发现人们说在线程中调用 fork ()是不好的。当人们做类似的事情时,为什么要在线程中调用 fork () ?
- Fork ()不能利用多处理器系统,因为父进程和子进程不能同时运行,这是真的吗?