Python——multiprocessing(进程模块)
注意点:
1. 各操作系统中创建进程的方法不同。
windows创建进程:
执行开启进程的代码
1. Process实例化后,.start()来创建一个进程,并告诉系统,创建完进程后请执行Process内的target所指定的函数。
2. 由于是进程之间数据无法交互的问题,那么windos会以import的方式来将父进程的所有信息再复制一遍到子进程中,并运行。
3. 如果此时没有__name__判断语句,那么将会继续执行Process语句进行子进程的创建。反复创建直到报错。
使用multiprocessing模块来创建一个进程。
from multiprocessing import Process
import time
import os
def func():
print('A',os.getpid())
time.sleep(1)
print('B',os.getpid())
if __name__ == '__main__': #windows中必须要写,如果不写将会报错
P = Process(target=func) #准备创建一个进程,并将func函数加入其中
P.start() #将func函数丢给系统,让系统自行创建一个进程,并运行其中的代码。
print('C',os.getpid()) #自己将继续往下执行自己进程中的事情。
exit()
print('D', os.getpid())
'''
C 17344
A 9400
B 9400
在P.start时,程序会将func代码直接给系统,让系统创建一个进程然后执行func中的代码。而不去管执行的怎么样,自己则继续往下执行。
因为CD中间有一个退出语句,那么就代表直接关闭该进程,而导致不会继续该进程下的D输出。
'''