【发布时间】:2010-09-11 03:59:50
【问题描述】:
在没有主动等待(轮询)的情况下,如何在 Windows 上等待 Python 中的多个子进程?像这样的东西几乎对我有用:
proc1 = subprocess.Popen(['python','mytest.py'])
proc2 = subprocess.Popen(['python','mytest.py'])
proc1.wait()
print "1 finished"
proc2.wait()
print "2 finished"
问题是当proc2在proc1之前完成时,父进程仍然会等待proc1。在 Unix 上,人们会在循环中使用 waitpid(0) 来获取子进程完成时的返回码 - 如何在 Windows 上的 Python 中实现类似的功能?
【问题讨论】:
-
你能描述一下你在 unix 上使用的 waitpid(0) 吗?
-
docs.python.org/library/os.html#os.waitpid
waitpid(0)在 unix 上等待(除非WNOHANG在选项中)任何可用的子状态并返回(processid,status)元组。
标签: python windows asynchronous