我想用多線程來加快我的腳本速度...... 我對這個還是很陌生的。 Python文檔假定您已經瞭解線程和不瞭解什麼。mutliprocessing.Pool.add_sync()吃掉內存
所以......
我的代碼看起來像這樣
from itertools import izip
from multiprocessing import Pool
p = Pool()
for i, j in izip(hugeseta, hugesetb):
p.apply_async(number_crunching, (i, j))
這給了我很大的速度!
然而,hugeseta和hugesetb是真正巨大。在他們完成工作後(基本上,將輸出打印到標準輸出),池將內存中的所有內存保留在內存中。是否有任何刪除我,和j他們完成後?
我會在哪裏放del? 我試着檢查池中的死亡工人,但從來沒有比核心更多的工人。 那麼存儲的所有_i_和_j_s在哪裏? – 2010-06-08 21:40:50
@奧斯汀只要你和他們在一起,我就會和你一起。 – zdav 2010-06-08 22:28:03
我是指循環運行時。如果我在沒有Pool的情況下運行,內存使用變平坦。如果我用Pool運行它,舊的_i_和_j_不會被垃圾收集。 – 2010-06-09 14:05:20