线程出于某种原因停止了所有代码——Python



我有一个启动5个线程的小循环,但是由于某种原因,循环在它开始第一个循环之后停止


for i in range(5):

t = threading.Thread(target=Loop.fatman(ws_server=ws_server, sessionid=sessionid, serverid=serverid, myuid=myuid, tokenn=tokenn))
t.daemon = True
threads.append(t)

print(print("loop finished (all threads created)")

由于某种原因,它没有进入print("loop finished (all threads created)")

我认为您的代码中有两个基本错误。

  1. 你必须将一个可调用的传递给Threadtarget,但你在代码中调用了它——t = threading.Thread(target=Loop.fatman(ws_server=ws_server, sessionid=sessionid, serverid=serverid, myuid=myuid, tokenn=tokenn))这一行实际上执行了函数fatman(),所以线程不在画面中,主线程会工作
  2. 您正在创建线程(即使调用了可调用线程(,但并没有在任何位置启动它们

请参阅下面的代码。它可以提供一些见解,可能不是一个完全工作的代码——因为我不知道你是否发布了一个完整的功能单元。

_callable = Loop.fatman
kwargs = dict(ws_server=ws_server, sessionid=sessionid, serverid=serverid, myuid=myuid, tokenn=tokenn)
for i in range(5):
t = threading.Thread(target=_callable, kwargs=kwargs)
t.daemon = True
# start your thread, just not create
t.start()
threads.append(t)
print("loop finished (all threads created)"

最新更新