Python - 线程处于活动状态时未填充的列表

时间:2017-01-31 15:56:31

标签: 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.append(datetime.datetime.now())
    return l

print(thread_function(test_function())) #returns []

2 个答案:

答案 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))