我有一個啟動 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)")
uj5u.com熱心網友回復:
我認為您的代碼中有兩個基本錯誤。
- 您必須將一個可呼叫物件傳遞給
Threadtarget,但是您是在代碼中呼叫它的 -t = threading.Thread(target=Loop.fatman(ws_server=ws_server, sessionid=sessionid, serverid=serverid, myuid=myuid, tokenn=tokenn))這一行實際上執行了函式fatman(),因此執行緒不在圖片中,主執行緒將作業。 - 您正在創建您的執行緒(即使呼叫了可呼叫物件),但您沒有在任何地方啟動它們。
請參閱下面的代碼。它可以提供一些見解,可能不是一個完整的代碼——因為我不知道你是否發布了一個完整的功能單元。
_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)"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/391058.html
