首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查来自另一个线程的主线程是否仍处于活动状态

检查来自另一个线程的主线程是否仍处于活动状态
EN

Stack Overflow用户
提问于 2014-05-03 09:34:38
回答 2查看 9.7K关注 0票数 10

如何检查主线程是否来自另一个线程(非守护进程,子线程)?

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

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

使用python 2.7

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-03 10:47:51

  • 对于Python2.7,您可以尝试如下: I在threading.enumerate()中: if i.name == "MainThread":打印i.is_alive() 在函数名中使用小写camel是不可取的,因此您应该使用i.is_alive()而不是i.isAlive()
  • 如果你喜欢一条线,试试这个: is_main_thread_active = lambda : any((i.name == "MainThread")和i.is_alive()用于threading.enumerate()) 然后调用is_main_thread_active()以检查主线程是否处于活动状态。 但是,有一次您可以直接使用它,而不需要创建函数。 any((i.name == "MainThread") and i.is_alive() for i in threading.enumerate())
  • 有关线程处理的更多信息,请查看此页
  • 在python3.4中,存在一个返回主线程的专用函数,因此您可以使用这个衬垫来查看您的主线程是否还活着。 threading.main_thread().is_alive()

希望这能帮到你。

票数 13
EN

Stack Overflow用户

发布于 2022-02-01 14:40:25

除了Raghav所说的,您还可以在全局变量中保存主线程,如下所示:

代码语言:javascript
运行
复制
mainThread = threading.currentThread() # current_thread() in py 3

然后使用mainThread.isAlive()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23442651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档