设计代码产生5个子进程,创建5个子进程,每个子进程输出其进程ID和父进程ID,然后退出。父进程在等待所有子进程结束后输出“所有子进程已完成”。
时间: 2024-12-20 18:30:00 浏览: 3
在Python中,我们可以使用`multiprocessing`模块来实现这个需求。这里是一个简单的示例:
```python
import multiprocessing
def worker(process_id):
# 这里是子进程函数,它会获取到自身的进程ID和父进程ID
parent_pid = multiprocessing.current_process().parent_pid
print(f"子进程{process_id},父进程ID: {parent_pid}")
# 子进程可以在这里做其他操作,然后退出
# 通常我们会调用`time.sleep()`模拟一些工作时间
time.sleep(1)
print(f"子进程{process_id}已退出")
if __name__ == "__main__":
# 创建5个进程
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
# 启动子进程
p.start()
# 等待所有子进程完成
for p in processes:
p.join()
# 所有子进程完成后,父进程输出信息
print("所有子进程已完成")
```
在这个例子中,`worker`函数被作为子进程的目标函数,并传递进程ID给它。父进程通过`join()`方法等待所有子进程结束。当所有子进程运行完毕后,程序会打印出"所有子进程已完成"。
阅读全文