fork()只支持类unix系统,不支持windows,windows多进程可使用multiprocessing。
python 调用fork
os.fork(),一次调用返回两次数据,子进程返回0,父进程返回子进程pid,创建子进程失败返回-1;
可根据返回值让父进程和子进程完成各自的任务。如下:
#coding = utf-8 import os import time def child(): print("child process %s" % os.getpid()) pass def parent(): print("parent process %s" % os.getpid()) time.sleep(10) pass pid = os.fork() # fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为父进程.而子进程继承了父进程的整个地址空间,其中包括了进程上下文,堆栈地址,内存信息进程控制块(PCB)等 if pid == 0: # 子进程返回0,创建失败返回-1,父进程返回子进程的pid child() elif pid == -1: print('创建子进程失败') else: print(pid) parent()