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输出。
'''