我有以下两个片段显示线程的能力,想知道有什么区别每个实现。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个线程。 –