python中的多线程:线程何时变为非活动状态



这是我的代码,我得到了不同的输出。

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

在函数结束时。

最新更新