如何通过知道线程ID获取线程的名称?

时间:2013-05-13 14:09:34

标签: python multithreading python-multithreading

我正在研究多线程回溯脚本,我使用以下代码示例来检索线程的名称,有没有更好的方法从线程ID中获取线程的名称?

for threadId, stack in sys._current_frames().items():
        tname = "None"
        for mthread in threading.enumerate():
            if mthread.ident == threadId:
                tname = mthread.name

1 个答案:

答案 0 :(得分:3)

不在threading的公共界面中。在内部,threading完全保留了您想要的映射,因此您可以编写(风险自负)

def thread_for_ident(ident):
    return threading._active.get(ident)
如果没有这样的线程,

将返回None。只要没有很多线程,我认为你的解决方案实际上并不太糟糕。