我使用的是python的多线程模块,但代码有时并不起作用。我打印活动线程的数量,发现有时启动的线程不活动。这是代码:
def do_stuff(q,obj):
while not q.empty():
item=q.get()
print item
q.task_done()
for i in range(num_thread):
worker=threading.Thread(target=do_stuff,args=(q,Files,))
worker.setDaemon(True)
worker.start()
print worker.is_alive()
print threading.active_count()
print threading.enumerate()
我的is_alive()函数得到False,并且活动线程列表中只有一个线程(主线程)。
我在这里做错了什么?
非常感谢!
答案 0 :(得分:2)
你的主题还没有时间开始。
is_alive()
isAlive()
返回线程是否存活。
此方法在
True
方法开始之前返回run()
,直到run()
方法终止。模块功能enumerate()
返回所有活动线程的列表。