按名称访问线程

时间:2011-08-23 10:08:31

标签: python multithreading

我正在尝试在我的脚本中实现一些基本的线程,我需要检查线程是否已经存在,我已经找到了如何设置名称但无法弄清楚如何使用名称的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()

我怎样才能检查线程名称5是否存活?

1 个答案:

答案 0 :(得分: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

  

...是一个仅用于识别目的的字符串。它有没有   语义即可。 可以为多个线程指定相同的名称

所以不要依赖这个名称作为明确的识别手段。