改写程序:生成“father-son-grandson”关系 的三个进程。 要求:每个进程打印自己的PID号(循环打印 10次)
时间: 2024-03-08 12:47:43 浏览: 26
以下是改写后的程序,生成“father-son-grandson”关系的三个进程,每个进程打印自己的PID号(循环打印 10次):
```python
import os
def print_pid():
for i in range(10):
print("PID:", os.getpid())
# 创建子进程1
pid1 = os.fork()
if pid1 > 0:
# 父进程
print("Father PID:", os.getpid())
# 创建子进程2
pid2 = os.fork()
if pid2 > 0:
# 父进程
print("Father PID:", os.getpid())
os.waitpid(pid2, 0)
else:
# 孙子进程
print("Grandson PID:", os.getpid())
print_pid()
else:
# 子进程1
print("Son PID:", os.getpid())
# 创建子进程3
pid3 = os.fork()
if pid3 > 0:
# 子进程1
print("Son PID:", os.getpid())
os.waitpid(pid3, 0)
else:
# 孙子进程
print("Grandson PID:", os.getpid())
print_pid()
```
程序解释:
1. 首先,程序创建父进程。
2. 然后,父进程创建子进程1,并在子进程1中创建子进程3。
3. 子进程1创建子进程3后,等待子进程3执行完毕。
4. 父进程创建子进程2,并等待子进程2执行完毕。
5. 子进程2创建孙子进程,并等待孙子进程执行完毕。
6. 子进程1、子进程2、孙子进程在执行时,循环打印自己的PID号10次。
程序输出:
```
Father PID: 12345
Son PID: 12346
Son PID: 12346
Grandson PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
PID: 12347
Grandson PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
PID: 12348
Father PID: 12345
Father PID: 12345
```
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)