multiprocessing多进程的执行过程分析

import os
from multiprocessing import Process
#multiprocessing 跨平台,可以支持Linux和Windows
print("***进程%d"%os.getpid())

def test():
    print("this is new process")
    
print("---进程%d"%os.getpid())

p = Process(target=test)

print("++++进程%d"%os.getpid())
if __name__=="__main__":#以下代码只在主进程中执行
    print("start进程%d"%os.getpid())
    p.start() #一个新的进程开始执行test函数里代码

输出结果为:

***进程8132
---进程8132
++++进程8132
start进程8132
***进程5920
---进程5920
++++进程5920

this is new process

分析:

if __name__=="__main__"以上代码父进程和子进程都会执行并且父进程是在创建子进程之前就已经顺序执行,
在p.start()开始执行后,会返回执行上面代码,为什么不是仅仅执行Process中仅仅指定的test呢?
而其下面的代码只会在父进程中执行


你可能感兴趣的:(Python学习)