2011-08-23 78 views
0

我想在我的脚本中实现一些基本的线程,我需要检查线程是否已经存在或没有,我已经找到了如何设置名称,但无法弄清楚如何使用is_alive函数名称按名称访问线程

class History(threading.Thread): 
    def __init__(self): 
     threading.Thread.__init__(self) 

    def run(self): 
     #do some stuff 

for i in range(10): 
    t = History 
    t.setName("name%s"%i)) 
    t().start() 

我以后怎么检查是线程name5是否存在?

回答

2

is_alive方法does not take any arguments。您不要按名称使用is_alive。相反,只需拨打t.is_alive() 即可检查线程t是否有效。

class History(threading.Thread): 
    def __init__(self,*args,**kwargs): 
     threading.Thread.__init__(self,*args,**kwargs) 

    def run(self): 
     #do some stuff 

threads=[History(name="name%s"%i) for i in range(10)] 
for t in threads: 
    t.start() 

while threads[5].is_alive(): 
    ... 

PS。文档说name attribute,

...是一个字符串,仅用于识别目的。它有没有 语义多个线程可能会被赋予相同的名称

所以不要依赖名称作为明确的鉴定手段。

+0

我已更新问题以更具体 – lwolf