我有这段代码:
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')
我需要开始方法' geter'只有在' t.start'之后才会出现在构建线程上。
但在我的情况下,我看到方法后的2张照片' geter'跑了。 我有这个印刷品:
FROM METHOD
THERE METHOD "GETER" SHOULD NOT RUN
THERE METHOD "GETER" WAS EXECUTED
如何运行方法' geter'仅在第一个和第二个PRINT之间(在步骤:t.start())? 我需要这张照片:
THERE METHOD "GETER" SHOULD NOT RUN
FROM METHOD
THERE METHOD "GETER" WAS EXECUTED
由于
答案 0 :(得分:1)
问题是你正在调用(调用)函数而不是将它传递给Thread
类,所以代替
t = threading.Thread(target=geter(token), args=(token,))
这样做:
t = threading.Thread(target=geter, args=(token,))
请注意,您不需要提供两次token
,这应该暗示您出了问题。
target
参数应该是一个函数(如geter
)或None
,但是因为你在那里调用函数,它返回None
(因为它& #39;没有返回任何东西)你没有错误。但是你会遇到这种意想不到的行为