这是一个创建于 3277 天前的主题,其中的信息可能已经有所发展或是发生改变。
import sys
import multiprocessing
import time
def func():
return 1+1
if __name__ == "__main__":
pool = multiprocessing.Pool(processes = 3)
for i in xrange(10000000):
pool.apply_async(func, ())
pool.close()
pool.join()
如果在 pypy test.py 执行,内存升的快些,用 python test.py 要慢些。
我跑 1000W 次,最终将导致内存错误,想问下,上面代码对于多进程是我使用有问题吗?
不用 multiprocess,Pool 就没这个问题。
多谢。
2 条回复 • 2016-03-21 17:31:26 +08:00
 |
|
1
mengzhuo 2016-03-21 14:37:17 +08:00 via iPhone
你都不会数数么?! apply async 啊! 也就是要分配 10000000*4K 至少=38G 的栈空间 乖乖用同步持的方式吧
|
 |
|
2
jamiesun 2016-03-21 17:31:26 +08:00
控制频率
|