老师,关于os.fork的问题

来源:11-10 multiprocessing 多进程编程

KeithTt

2018-08-19

import os
import time

# fork一个子进程,fork只能用于linux/unix中
pid = os.fork()
print('test')

if pid == 0:
print('子进程: {}的父进程是: {}.'.format(os.getpid(), os.getppid()))
else:
print('我是父进程:{}.'.format(os.getpid()))

首先,有个地方老师写错了,就是 print('我是父进程:{}.'.format(os.getpid())) 这里老师写的是 print('我是父进程:{}.'.format(pid))

//img.mukewang.com/szimg/5b79448e000115a914500440.jpg

其次,我在mac上不能重现老师的状况,我不让主进程sleeep,一样可以正常结束,而且子进程的父进程依然是主进程,并没有被init接管。我在云主机试了一下,跟在mac上一样,请问老师这是什么状况?

test
我是父进程:6861.
test
子进程: 6862的父进程是: 6861.

还有就是,如果子进程只执行fork以下的代码,那如果写了time.sleep子进程会找不到time模块吗?

感谢老师!!!

写回答

2回答

bobby

2020-05-26

这个地方我刚才试了一下 ,这里确实有点问题,我需要排查一下具体原因

0
0

bobby

2018-09-04

你加我的qq 442421039 我看看

0
0

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2139 学习 · 552 问题

查看课程