Python - 如何在构建线程步骤中不启动线程



我有这个代码:

import threading
tokens = [here are list with tokens]
def geter(token):
print('FROM METHOD')
for token in tokens:
t = threading.Thread(target=geter(token), args=(token,))
print('THERE METHOD "GETER" SHOULD NOT RUN')
t.start()
print('THERE METHOD "GETER" WAS EXECUTED')

我只需要在"t.start"之后启动方法"geter",而不是在构建线程步骤中。

但就我而言,我在运行方法"geter"后看到 2 次打印。我有这个打印:

FROM METHOD
THERE METHOD "GETER" SHOULD NOT RUN
THERE METHOD "GETER" WAS EXECUTED

如何在第一个和第二个 PRINT 之间运行方法"geter"(在步骤中:t.start(((?我需要这个打印:

THERE METHOD "GETER" SHOULD NOT RUN
FROM METHOD
THERE METHOD "GETER" WAS EXECUTED

谢谢

问题是您正在调用(调用(该函数,而不是将其传递给Thread类,因此

t = threading.Thread(target=geter(token), args=(token,))

这样做:

t = threading.Thread(target=geter, args=(token,))

请注意,您不需要提供两次token,这应该向您暗示出了问题。

target参数应该是一个函数(如geter(或None,但是由于您在那里调用该函数,该函数返回None(因为它没有返回任何内容(,因此您不会出错。但是,您确实会遇到这种意外行为

最新更新