【发布时间】:2013-04-27 14:15:54
【问题描述】:
我以前在我的应用程序中使用过线程并且非常了解它的概念,但是最近在我的操作系统讲座中我遇到了 fork()。这类似于线程。
我用谷歌搜索了它们之间的区别,我知道了:
- Fork 只是一个新进程,看起来与旧进程或父进程完全一样,但它仍然是具有不同进程 ID 并拥有自己内存的不同进程。
- 线程是开销较小的轻量级进程
但是,我心中仍有一些疑问。
- 什么时候你应该更喜欢 fork() 而不是线程,反之亦然?
- 如果我想在小时候调用外部应用程序,我应该使用 fork() 还是线程来执行它?
- 在进行谷歌搜索时,我发现有人说在线程中调用 fork() 是一件坏事。为什么人们在做类似的事情时要在线程内调用 fork()?
- fork() 确实不能利用多处理器系统,因为父进程和子进程不同时运行吗?
【问题讨论】:
标签: linux multithreading unix programming-languages fork