关于fork的理解

xiaoxiao2021-02-28  123

理解fork()的最重要的点是,你fork了一次,但它返回了两次:一个是在父进程里,一个是在子进程里。

当你fork了一个新进程,子进程返回的进程ID是0。父进程里fork返回的是子进程的PID。

pid = fork()

print(pid)

你会发现打印出两个值,第一个是父进程返回的子进程的pid=xxx,第二个是子进程返回的pid=0

当父进程fork了一个新的子进程,子进程就获取了父进程文件描述符的拷贝。在调用fork后,父进程和子进程共享相同的文件描述符。内核使用描述符引用计数来决定是否关闭文件/socket,当描述符计数为0,则关闭文件/socket。

服务器父进程的角色是:现在它所需要做的就是接受一个新连接,fork一个子进程来处理这个请求,然后循环接受新连接。

转载请注明原文地址: https://www.6miu.com/read-64269.html

最新回复(0)