我正在使用線程庫並希望有一個線程將調用多個線程。這個程序的背景是我有一個攝像頭捕捉圖像,並使它們在TCP-SocketServer上的類中可用。在Python中創建線程中的線程
因此,我需要一個運行相機捕獲的線程和運行TCPServer的第二個線程,但在此線程中,每個傳入連接都有幾個線程。
最後一個線程意味着我需要一個線程可以創建線程。不幸的是,這沒有奏效。
我設法打破巨大的代碼放到一個小片段代表了問題:
import threading
def adder(x,res,i):
res[i] = res[i] + x*i;
def creator(a,threads,results):
results = []
for i in range(0,a):
results.append(0)
threads.append(threading.Thread(target=adder,args=(a,results,i)))
threads[i].start()
for i in range(0,len(threads)):
threads[i].join()
return results;
threads = [];
results = [];
mainThread = threading.Thread(target=creator,args=([5,threads,results]))
mainThread.start()
mainThread.join()
for i in range(0,len(results)):
print results[i]
print threads[i]
在功能creator
這被稱爲一個線程應該有與功能可按adder
創建多個線程。
但結果是空的,爲什麼這樣呢?
這是我的大型程序中發生的同樣的問題。
Python的線程有沒有這樣的方法('.terminate()') - 不管他們是否已經已經開始。請參閱:http://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread-in-python –
Python線程沒有'.stop()'方法 - 您編輯的代碼_現在應該提出一個例外。請參閱我已經提供的鏈接:Python不支持強制線程停止的內置方式。 –
奇怪的是,它的工作。不過,我現在將線程替換爲只具有簡單任務並等待所有線程加入的線程,但結果仍爲空,現在我得到通知:NoneType沒有函數,稱爲加入 – Kev1n91