小编Gab*_*abe的帖子

Python Multiprocessing.Pool延迟迭代

我想知道python的Multiprocessing.Pool类使用map,imap和map_async的方式.我的特殊问题是我想在一个迭代器上映射,该迭代器创建了占用大量内存的对象,并且不希望所有这些对象同时生成到内存中.我想看看各种map()函数是否会使我的迭代器变干,或者只是在子进程缓慢前进时智能地调用next()函数,所以我这样修改了一些测试:

def g():
  for el in xrange(100):
    print el
    yield el

def f(x):
  time.sleep(1)
  return x*x

if __name__ == '__main__':
  pool = Pool(processes=4)              # start 4 worker processes
  go = g()
  g2 = pool.imap(f, go)
  g2.next()
Run Code Online (Sandbox Code Playgroud)

依此类推map,imap和map_async.这是最公然的例子,因为简单地在g2上单次调用next()会从我的生成器g()中打印出所有元素,而如果imap这样做'懒惰',我希望它只调用go.next ()一次,因此只打印'1'.

有人可以清理正在发生的事情,并且如果有某种方法让进程池'懒惰'根据需要评估迭代器吗?

谢谢,

加布

python multiprocessing

56
推荐指数
2
解决办法
2万
查看次数

使用python-syntax配置文件的最佳方法是什么(当然是在python中)?

我的配置文件实际上只是一个大的python dict,但我有很多配置文件来运行不同的实验,我想根据命令行选项"导入"另一个.本能地我想要导入ConfigFileName,其中ConfigFileName是一个带有配置文件的python包名称的字符串...但是这不起作用.

有任何想法吗?

python import configuration config

1
推荐指数
1
解决办法
552
查看次数

标签 统计

python ×2

config ×1

configuration ×1

import ×1

multiprocessing ×1