我有以下兩個片段顯示線程的能力,想知道有什麼區別每個實現。Python的線程/線程池的實現
from multiprocessing.dummy import Pool as ThreadPool
def threadInfiniteLoop(passedNumber):
while 1:
print passedNumber
if __name__ == '__main__':
packedVals={
'number':[0,1,2,3,4,5,6,7,8,9]
}
pool = ThreadPool(len(packedVals['number']))
pool.map(func=threadInfiniteLoop,iterable=packedVals['number'])
和
import threading
def threadLoop(numberPassed):
while 1:
print numberPassed
if __name__ == '__main__':
for number in range(10):
t = threading.Thread(target=threadLoop, args=(number,))
t.start()
兩者有什麼片段和它們的初始化每個線程的區別?相對於另一方而言,是否有一個好處,哪一個會比另一個更適用?
我想'ThreadPool'是更可讀,你總是可以肯定你沒有啓動9000個線程。 –