Python 线程:有没有办法检测线程中的 join() 调用?
Python threading: Is there a way to detect a join() call in a thread?
我创建了一个运行 X 个线程的程序,这些线程都需要能够被主线程关闭。目前我可以停止程序,这样每个线程都会被突然杀死。我希望能够检测到关闭并更优雅地处理它。为此,我想使用 join()
函数,它等待线程完成。问题是线程没有固定结束,因此调用 join()
意味着主线程将永远等待线程结束。
那么问题来了。有没有办法检测线程中的 join()
调用并为其编写自定义响应?
您可以在线程外处理停止信号(使用 signal
模块,如 this),在您的线程上设置一个标志,要求它们停止处理并调用 join
你的主线程。
我创建了一个运行 X 个线程的程序,这些线程都需要能够被主线程关闭。目前我可以停止程序,这样每个线程都会被突然杀死。我希望能够检测到关闭并更优雅地处理它。为此,我想使用 join()
函数,它等待线程完成。问题是线程没有固定结束,因此调用 join()
意味着主线程将永远等待线程结束。
那么问题来了。有没有办法检测线程中的 join()
调用并为其编写自定义响应?
您可以在线程外处理停止信号(使用 signal
模块,如 this),在您的线程上设置一个标志,要求它们停止处理并调用 join
你的主线程。