我正在研究多线程回溯脚本,我使用以下代码示例来检索线程的名称,有没有更好的方法从线程ID中获取线程的名称?
for threadId, stack in sys._current_frames().items():
tname = "None"
for mthread in threading.enumerate():
if mthread.ident == threadId:
tname = mthread.name
答案 0 :(得分:3)
不在threading
的公共界面中。在内部,threading
完全保留了您想要的映射,因此您可以编写(风险自负)
def thread_for_ident(ident):
return threading._active.get(ident)
如果没有这样的线程,将返回None
。只要没有很多线程,我认为你的解决方案实际上并不太糟糕。