小编jfo*_*ofo的帖子

Python多处理池 - 迭代对象方法?

也许更熟悉Python的多处理池代码的人可以帮助我.我试图通过套接字连接同时连接到我的网络上的几个主机(任何时候N)并执行一些RPC.当一个主机完成时,我想将下一个主机添加到池中以运行直到所有主机都完成.

我有一个类,HClass,有一些方法可以这样做,还有一个主机名列表中包含的主机名.但我没有找到任何一个docs.python.org的例子来使这个工作.

一小段代码来说明我到目前为止所获得的内容:

hostlist = [h1, h2, h3, h4, ....]
poolsize = 2

class HClass:
  def __init__(self, hostname="default"):
    self.hostname = hostname

  def go(self):
      # do stuff
      # do more stuff
  ....

if __name__ == "__main__":
  objs = [HClass(hostname=current_host) for current_host in hostlist]
  pool = multiprocessing.pool(poolsize)
  results = pool.apply_async(objs.go())
Run Code Online (Sandbox Code Playgroud)

到目前为止,我很幸运有这个追溯:

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 319, in _handle_tasks
    put(task) …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

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

标签 统计

multiprocessing ×1

python ×1