在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()
...
这会起作用,还是会以某种方式破坏生产?
答案 0 :(得分:1)
您从哪个主题调用Popen.wait()
或os.wait()
并不重要。它不一定是与进程相同的线程。