Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-线程处于活动状态时未填充列表_Python_Multithreading - Fatal编程技术网

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将此答案标记为已接受。有相同的解决方案,但先回答。谢谢大家的帮助,我把这个答案标记为已接受。有相同的解决方案,但先回答。谢谢大家的帮助