📅  最后修改于: 2023-12-03 14:46:21.930000             🧑  作者: Mango
在 Unix 操作系统中,fork()
方法可以创建一个新的子进程,该子进程是原进程的副本。两个进程拥有相同的代码,共享打开的文件描述符、进程间通信资源等等。子进程和父进程之间是相互独立的,子进程的变化不会影响父进程,反之亦然。
以下是 fork()
方法的语法:
os.fork()
子进程返回 0,父进程返回子进程的 PID(进程 ID)。如果创建子进程失败,返回 -1。
以下示例展示了如何使用 fork()
方法创建新的子进程:
import os
def child_process():
print('子进程: 我的 PID 是', os.getpid())
print('子进程: 我的父进程 PID 是', os.getppid())
def parent_process():
print('父进程: 我的 PID 是', os.getpid())
child_pid = os.fork()
if child_pid == 0:
print('父进程: 我刚刚创建了一个子进程,PID 是', os.getpid())
child_process()
else:
print('父进程: 我的子进程 PID 是', child_pid)
parent_process()
输出:
父进程: 我的 PID 是 1234
父进程: 我刚刚创建了一个子进程,PID 是 1235
子进程: 我的 PID 是 1235
子进程: 我的父进程 PID 是 1234
父进程: 我的子进程 PID 是 1235
在上例中,父进程创建了一个子进程,并在子进程中输出其 PID 和父进程 PID。注意,子进程的执行顺序和输出顺序不能保证,因为在父子进程之间并没有同步机制。如果需要保证顺序,可以使用进程间通信方式如管道、共享内存等等。