Python进程池没有创建预期的进程数

时间:2014-11-23 21:06:09

标签: python map process pool python-multiprocessing

我正在尝试使用python的池模块编写一个简单的程序。这是我的代码:

from multiprocessing import Pool
from multiprocessing.pool import ApplyResult
import time
import os

def unwrap_self_f(arg, **kwarg):
  print 'inside unwrap_self_f'
  return C().f(arg, **kwarg)

class C:
  def f(self, name):
    return 'Inside f..Process id :' + str(os.getpid())

  def run(self):
    print 'Reached inside run..'
    print 'main process id ..', os.getpid()
    pool = Pool(processes=4)
    names = ['frank', 'justin', 'osi', 'thomas']        
    print pool.map(unwrap_self_f, names, 1)               

if __name__ == '__main__':
   print 'Starting....'
   c = C()
   print 'Running....'
   c.run()

当我运行这个程序时,我希望看到打印出4个不同的进程ID,每个进程创建一个。我选择的chunksize为1,因此列表中的每个项目都会进入一个单独的进程。

然而,正在打印的进程ID是相同的。我得到以下输出:

Starting....
Running....
Reached inside run..
main process id .. 1284
['Inside f..Process id :6872', 'Inside f..Process id :6872', 'Inside f..Process id :6872', 'Inside f..Process  id :6872']

我在这里错了吗?任何人都可以对此有所了解。提前谢谢。

0 个答案:

没有答案