这是我的代码,我的输出变化多了。
import threading
import time
def th_fun(limit,sleeptime):
print '%s' % (limit)
print '%s number of threads are active' % (threading.activeCount())
time.sleep(sleeptime)
if __name__ == '__main__':
for i in range(5):
t = threading.Thread(target = th_fun , args = (i,1))
t.start()
有人可以判断线程何时变为非活动状态?我的理解是创建并运行了5个不同的线程对象,一旦执行time.sleeptime(),它就会变为非活动状态。
答案 0 :(得分:1)
输出是多变的,因为执行多个线程的顺序以及每个线程的速度是不确定的。
一旦发生t.start()
,就会使用您提供的参数调用该函数。但是,在下一个线程设置和启动时,它在后台运行。根据运行所需的时间长短,它可能会在下一个线程启动之前完成运行,也可能在所有其他线程启动后完成。
添加以下内容可能有助于您的理解:
print "Finished thread %s" % limit
在你的功能结束时。