gpt4 book ai didi

python - 从另一个线程检查主线程是否还活着

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:25 24 4
gpt4 key购买 nike

如何从另一个(非守护进程、子)线程检查主线程是否处于事件状态?

子线程是一个非守护线程,我想检查主线程是否还在运行,并根据结果停止这个非守护线程。

(创建线程守护进程对我的情况不利,因为我的线程写入 stdout,当线程设置为守护进程时会产生问题)

使用 python 2.7

最佳答案

  • 对于 Python 2.7,您可以试试这个:

    for i in threading.enumerate():
    if i.name == "MainThread":
    print i.is_alive()

    函数名称中小驼峰式的使用已被弃用,因此您应该使用 i.is_alive() 而不是 i.isAlive()

  • 如果你喜欢单线,试试这个:

    is_main_thread_active = lambda : any((i.name == "MainThread") and i.is_alive() for i in threading.enumerate())

    然后调用is_main_thread_active()检查主线程是否活跃。

    然而,对于一次性使用,您可以直接使用它而无需创建函数。

    any((i.name == "MainThread") 和 i.is_alive() for i in threading.enumerate())

  • 检查 this page有关线程的更多信息。

  • 在 python 3.4 中,存在一个返回主线程的专用函数,因此您可以使用这个衬里来查看您的主线程是否仍然存在。

    threading.main_thread().is_alive()

希望对你有帮助。

关于python - 从另一个线程检查主线程是否还活着,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23442651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com