пятница, 30 декабря 2011 г.

Два способа формирования контекста для subprocessing.Pool.map

1. С использованием инициализатора и глобального окружения

from multiprocessing import Pool

def init_context(context):
   globals().update(context)

def f(x):
   return x*multiplier

if __name__ == '__main__':
   pool = Pool(4, init_context, [{'multiplier': 2},])
   data = xrange(10)
   print pool.map(f, data)

2. С использованием callable классов

from multiprocessing import Pool

class f(object):
   def __init__(self, multiplier):
       self.multiplier = multiplier
   def __call__(self, x):
       return x*self.multiplier

if __name__ == '__main__':
   pool = Pool(4)
   data = xrange(10)
   print pool.map(f(3), data)

Комментариев нет:

Отправить комментарий