5

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

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

1 回答 1

3

不在threading. 在内部,threading准确地维护您想要的映射,因此您可以编写(风险自负)

def thread_for_ident(ident):
    return threading._active.get(ident)

None如果没有这样的线程,它将返回。只要线程不多,我认为您的解决方案实际上并不算太糟糕。

于 2013-05-13T14:21:30.900 回答