在 Python 中查找线程的活动计数时出现问题



我需要一些帮助来尝试理解以下代码发生了什么。基本上我试图理解语句 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 完成执行时返回。

最新更新