Ich habe die folgenden zwei Schnipsel, die die Macht der Threading zeigen und fragte mich, was der Unterschied für jede Implementierung ist.Python Threading/ThreadPool Implementierung
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'])
und
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()
Was ist der Unterschied zwischen den beiden Schnipsel und deren Initialisierung der von jedem Thread? Gibt es einen Vorteil gegenüber dem anderen und was wäre eine wünschenswerte Situation, in der die eine zutreffender wäre als die andere?
Ich denke 'ThreadPool' ist viel lesbarer und Sie können immer sicher sein, dass Sie 9000 Threads nicht gestartet haben. –