是否可以从与创建流程的线程不同的线程等待子进程?

时间:2015-09-09 14:06:40

标签: python multithreading unix

在Python多线程程序中处理SIGTERM时,我最近有点怪癖。类似的东西是否适用于os模块中的其他功能?更具体地说,我是否需要始终在主线程的进程中等待(例如os.wait)?

一些代码来说明我的观点:

class MyService:
    def stop_child_process(self, p):
         assert is instance(p, subprocess.Popen)
         stopper = threading.Thread( partial(self._wait_for_child, p) )
         stopper.start()

    def _wait_for_child(self, p):
         ...
         p.wait()
         ...

这会起作用,还是会以某种方式破坏生产?

1 个答案:

答案 0 :(得分:1)

您从哪个主题调用Popen.wait()os.wait()并不重要。它不一定是与进程相同的线程。