python使用os.fork()

想问一下,为什么这里if和else都会被执行呀
python使用os.fork()


回答:

执行fork前,你只有一个 python 进程。

执行 fork 时,操作系统会复制整个进程。

操作系统复制完,在复制出来的进程返回 0,在原进程返回复制出来的进程的 PID 。

下图中,方框左下角的数字,是方框所属进程的 PID 。

回答你的问题,实际发生的事情是 fork 产生的进程执行了 if 分支,原进程执行了 else 分支。

python使用os.fork()


回答:

第二行的注释是错误的,获取的是父进程的进程号。
父进程和子进程都会执行 os.fork 后的所有代码,而 os.fork 的返回值可以用来判断是父进程还是子进程。
由于子进程和父进程都会执行位于 os.fork 后的 if...else... 块,所以在父进程中输出了第七行,在子进程中输出了第五行。

以上是 python使用os.fork() 的全部内容, 来源链接: utcz.com/p/938161.html

回到顶部