这是我的代码,我得到了不同的输出。
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(),它就会变得不活动。
输出是可变的,因为多个线程的执行顺序以及每个线程的速度是不确定的。
一旦发生t.start()
,就会使用您提供的参数调用该函数。但是,在设置和启动下一个线程时,它会在后台运行。根据运行所需的时间,它可能在下一个线程启动之前完成运行,也可能在所有其他线程启动后完成。
添加以下行可能会帮助您理解:
print "Finished thread %s" % limit
在函数结束时。