【发布时间】:2012-01-11 17:19:34
【问题描述】:
我正在制作服务器,并使用 fork() 创建子进程,但我对此表示怀疑。以下是一些:
- 为什么需要在子进程中关闭主套接字,而在父进程中需要新的连接接受套接字? (接受新连接后)我认为套接字只是具有一些 id 的整数,用于访问某些系统范围对象中打开的套接字,这只能通过系统函数调用接受。在这种情况下,fork 只会复制整数,但不会影响打开的套接字。
- 我检查并发现如果我在类方法中派生一个进程,所有成员都会被复制。好吧,我发现它是编辑时复制,这是否意味着我的服务器类将被复制到每个使用非常量函数的子节点中?如何在所有此类进程之间共享一些内存(例如任务列表,每个孩子在父母从中读取内容时将内容放入其中)?我猜 fork 不是正确的功能。最好的方法是什么?
附:我很确定我知道第二个问题的答案,即 clone(),但只是想确保这是正确的函数。
【问题讨论】: