Python “禁用”;加入;当进程关闭时

Python “禁用”;加入;当进程关闭时,python,multiprocessing,fail-fast,Python,Multiprocessing,Fail Fast,有没有办法阻止多处理Python模块尝试在父进程关闭的子进程上调用并等待join() 2010-02-18 10:58:34750为进程procx1调用join()的信息 我希望我向其发送了SIGTERM的进程尽快退出(即“快速失败”),而不是等待几秒钟才最终放弃加入的尝试 澄清:我有一个“中心流程”,它创建了一系列“子流程”。我正在寻找一种干净地处理来自任何进程的“SIGTERM”信号的方法,以便将整个进程树拆下。您是否尝试显式使用?您可以尝试加入一个超时(1秒?)的循环,并检查线程是否仍处于

有没有办法阻止
多处理
Python模块尝试在父进程关闭的子进程上调用并等待
join()

2010-02-18 10:58:34750为进程procx1调用join()的信息

我希望我向其发送了
SIGTERM
的进程尽快退出(即“快速失败”),而不是等待几秒钟才最终放弃加入
的尝试


澄清:我有一个“中心流程”,它创建了一系列“子流程”。我正在寻找一种干净地处理来自任何进程的“SIGTERM”信号的方法,以便将整个进程树拆下。

您是否尝试显式使用?

您可以尝试加入一个超时(1秒?)的循环,并检查线程是否仍处于活动状态,例如:

while True:
  a_thread.join(1)
  if not a_thread.isAlive(): break

终止
a_线程
将触发
break
子句。

听起来像是设置子进程标记
Process.daemon=False
可能是您想要的:

:

进程的守护进程标志,一个布尔值。必须在调用start()之前设置此选项。
初始值从创建过程中继承。
当进程退出时,它会尝试终止其所有daemonic子进程


请注意,不允许daemonic进程创建子进程。否则,如果daemonic进程在其父进程退出时终止,它将使其子进程处于孤立状态。此外,这些不是Unix守护进程或服务,它们是将被终止(而不是加入)的正常进程如果非dameonic进程已退出。

感谢您的时间:我不想等待
加入
s通过。感谢您的时间:我有一堆子进程,因此您的建议不充分。我已接受此答案,因为它最接近我提出的方案。