スレッドのパワーを示す次の2つのスニペットがあり、それぞれの実装の違いが何か不思議です。Python Threading/ThreadPoolの実装
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()
2つのスニペットとその初期化の各スレッドの違いは何ですか? 1つの利点が他のものに比べてあり、望ましい状況であれば、他のものより適用可能なものは何か?
私は 'ThreadPool'ははるかに読みやすく、いつでもあなたが9000スレッドを開始していないことを確信できると思います。 –