Python-线程处于活动状态时未填充列表
我创建了两个简单的函数来查看线程是如何工作的。我想在线程处于活动状态时填充一个列表。但是返回的列表是空的Python-线程处于活动状态时未填充列表,python,multithreading,Python,Multithreading,我创建了两个简单的函数来查看线程是如何工作的。我想在线程处于活动状态时填充一个列表。但是返回的列表是空的 def test_function(): x=1 while x<=100000: x=x+1 def thread_function(funct): t = threading.Thread(target=funct) t.start() l = [] while t.isAlive(): l.app
def test_function():
x=1
while x<=100000:
x=x+1
def thread_function(funct):
t = threading.Thread(target=funct)
t.start()
l = []
while t.isAlive():
l.append(datetime.datetime.now())
return l
print(thread_function(test_function())) #returns []
def test_函数():
x=1
而x这是因为您正在主线程中执行test\u函数
,并将None
传递给thread\u函数
,而不是函数本身
print(thread_function(test_function()))
应该是
print(thread_function(test_function))
这是因为您正在主线程中执行test\u函数
,并将None
传递给thread\u函数
,而不是函数本身
print(thread_function(test_function()))
应该是
print(thread_function(test_function))
您需要通过函数test\u function
,而不是该函数test\u function()
的返回值,该值为无
因此,基本上,作为线程目标的函数是None
更改此项:
print(thread_function(test_function()))
致:
您需要通过函数test\u function
,而不是该函数test\u function()
的返回值,该值为无
因此,基本上,作为线程目标的函数是None
更改此项:
print(thread_function(test_function()))
致:
如果线程在进入t.isAlive()
循环之前立即运行并完成,该怎么办?您无法查看是否发生了这种情况,也无法检查线程内部生成的循环。顺便说一下,不要调用列表list
。这是类型的名称。谢谢你的观察。我编辑了我的代码。你是对的,我发现test_函数运行得太快了。我编辑代码是为了运行更长的时间。如果线程在进入t.isAlive()循环之前运行并立即结束,该怎么办?您无法查看是否发生了这种情况,也无法检查线程内部生成的循环。顺便说一下,不要调用列表list
。这是类型的名称。谢谢你的观察。我编辑了我的代码。你是对的,我发现test_函数运行得太快了。我编辑了代码以便运行longerI将此答案标记为已接受。有相同的解决方案,但先回答。谢谢大家的帮助,我把这个答案标记为已接受。有相同的解决方案,但先回答。谢谢大家的帮助