我需要一些帮助来尝试理解以下代码发生了什么。基本上我试图理解语句 threading.active_count(( 在 Python 中是如何工作的:
import threading
import time
def worker(count):
for c in range(count,-1,-1):
threadname = threading.currentThread().getName()
time.sleep(2)
print ("Value of count {} from thread {}".format(c,threadname))
threadcount = threading.active_count()
print ("Threadcount is :",threadcount)
mainthreadname = threading.currentThread().getName()
print ("Starting new thread from main thread:",mainthreadname)
t1 = threading.Thread(target=worker,args=(10,))
t1.start()
time.sleep(5)
print ("main thread exiting!")
这里的问题是,即使获取活动线程计数的行嵌套在范围块内,即使在范围块完成执行后,该行仍以活动线程计数 1(我认为是主线程(继续执行。
基本上,如果有人在他们的机器上运行它,他们会得到我想要指出的内容。
有人可以指出这里的问题是什么。
提前谢谢。
对我来说,线程数总是 3。 另外,考虑将 time.sleep(5( 更改为 t1.join((,这将在 worker 完成执行时返回。