import os
pid = os.fork()
if 0 > pid:
print('调用出错')
elif 0 == pid:
print('我是子进程%s我的父进程是%s' % (os.getpid(), os.getppid()))
elif 0 < pid:
print('我是父进程%s,我的子进程是%s' % (os.getpid(), pid))
fork在字典中解释为:分岔;岔开两条分支;走岔路中的一条;叉运;叉掘
当在python程序中调用fork后,子进程会复制⽗进程的所有信息到⼦进程中 ,而后程序就分两个进程继续运行后面的程序,这也是fork(分岔)的含义了。在子进程内,这个方法会返回0;在父进程内,这个方法会返回子进程的编号pid。所以可以根据pid来判断区分父进程或子进程。
import os
import time
num = 10
pid = os.fork()
if 0 == pid:
print('我是子进程,num的值为%d' % num)
num += 1
print('我是子进程,num的值为%d' % num)
else:
time.sleep(2)
print('我是父进程,num的值为%d' % num)
我是子进程,num的值为10
我是子进程,num的值为11
我是父进程,num的值为10
在每个进程中数据都是独立的,即没有其他手段方式进程间是无法通信的,即:
多进程中,每个进程中所有数据(包括全局变量)都各有拥有⼀份,互不影响