我想用多线程来加快我的脚本。。。 我还是个新手。Python文档假定您已经了解线程以及其他什么。在
所以。。。在
我有这样的代码
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是非常巨大的。Pool在完成任务后将所有的i和j保存在内存中(基本上,将输出打印到stdout)。他们完成后有没有什么要删除的?在
不是真正的答案,但我用了
Pool.imap()
代替:它工作得很好,垃圾收集如预期,但是有一个
for
循环除了pass
之外什么都没有做实际上做了一些有用的事情。在del statement删除对象引用,因此可以在垃圾回收器运行时释放内存。在
相关问题 更多 >
编程相关推荐