在退出 Python 程序之前等待所有守护线程完成的简单方法?

Simple way to wait for all deamon threads to finish before exiting a Python program?

我有一个很长的 运行ning 操作,它由守护线程监视并在完成后在主线程中调用回调。

Python 程序在剩余 only daemon 个线程时退出。这在我的情况下有点不幸,因为这意味着如果程序在长 运行ning 操作完成之前退出,则永远不会调用回调。

回调调度和监控发生在外部库的深处,所以我不能轻易修改它(长运行ning操作是google.api_core.operation.Operation)。

有没有一种简单的方法可以从我的客户端代码中等待这个守护线程完成?或者另一种方式来确保回调将 运行?

如果您想在主程序退出之前等待守护线程退出,但由于某种原因您没有对这些线程的引用,threading 模块已涵盖:

它提供了一个 enumerate 函数,returns 当前活动线程的列表。只需循环其结果和 join() 您感兴趣的主题。