这篇文章主要介绍了python并发编程 Process对象的其他属性方法join方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一 Process对象的join方法
在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况
情况一:
在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源。 这种是没有join方法
情况二:
如果主进程的任务在执行到某一个阶段时,需要等待子进程执行完毕后才能继续执行,
就需要有一种机制能够让主进程检测子进程是否运行完毕,在子进程执行完毕后才继续执行,否则一直在原地阻塞,这就是join方法的作用
让主进程等着,所有子进程执行完毕后,主进程才继续执行
from multiprocessing import Process
import time
import os
def task():
print("%s is running,parent id is <%s>" % (os.getpid(), os.getppid()))
time.sleep(3)
print("%s is done,parent id is <%s>" % (os.getpid(), os.getppid()))
if __name__ == "__main__":
t = Process(target=task, )
t.start()
t.join()
# 主进程 等子进程执行完了
print("主", os.getpid(), os.getppid())
''