2013-05-13 33 views
4

我正在使用多线程追溯脚本,我正在使用下面的代码示例来检索线程的名称,有没有更好的方法来获取线程的名称线程ID?如何通过知道线程ID来获取线程的名称?

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

回答

3

不在公共界面threading。在内部,threading保持正是你想要的映射,所以你可以写(风险自担)

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

将返回None,如果没有这样的线程。只要没有太多的线程,我认为你的解决方案实际上是太糟糕了。