我创建了两个简单的函数来查看线程的工作方式。我希望在线程处于活动状态时填充列表。但返回的列表是空的。
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 []
答案 0 :(得分:1)
这是因为你在主线程中执行test_function
,并将None
传递给thread_function
而不是函数本身。
print(thread_function(test_function()))
应该是
print(thread_function(test_function))
答案 1 :(得分:1)
您需要传递函数test_function
,而不是此函数test_function()
的返回值,即无。
所以,基本上你作为线程目标的函数是None。
改变这个:
print(thread_function(test_function()))
要:
print(thread_function(test_function))