Chinaunix

标题: 使用multiprocessing.pool.map函数的问题 [打印本页]

作者: kc_hxd_jp    时间: 2011-02-15 17:05
标题: 使用multiprocessing.pool.map函数的问题
感觉很简单啊.....不知道哪里错了
  1. from multiprocessing import *
  2. import os
  3. import time

  4. def sleeper(name, seconds):
  5.         print name
  6.         print seconds
  7.         time.sleep(10)
  8.         print "Done sleeping"
  9.        

  10. if __name__=="__main__":
  11.         pool = Pool(5)
  12.         print "parnet process (id %s)" % os.getpid()
  13.         pool.map(sleeper, range(10), range(10))
  14.         print "All Done
复制代码
错误信息
D:\>python processtest.py
parnet process (id 3160)
Traceback (most recent call last):
  File "processtest.py", line 15, in <module>
    pool.map(sleeper, range(10), range(10))
  File "C:\PYTHON25\lib\site-packages\multiprocessing\pool.py", line 148, in map
    return self.map_async(func, iterable, chunksize).get()
  File "C:\PYTHON25\lib\site-packages\multiprocessing\pool.py", line 209, in map_async
    result = MapResult(self._cache, chunksize, len(iterable), callback)
  File "C:\PYTHON25\lib\site-packages\multiprocessing\pool.py", line 451, in __init__
    self._number_left = length//chunksize + bool(length % chunksize)
TypeError: unsupported operand type(s) for //: 'int' and 'list'

D:\>
作者: azer    时间: 2011-02-15 21:44
  1. from multiprocessing import Pool
  2. import os
  3. import time

  4. def sleeper((name, sec)):
  5.     print name
  6.     print sec
  7.     time.sleep(2)
  8.     print "Done sleeping"

  9. if __name__=="__main__":
  10.     pool = Pool(5)
  11.     print "parnet process (id %s)" % os.getpid()
  12.     pool.map(sleeper, zip(range(10), range(10)))
  13.     print "All Done"
复制代码

作者: kc_hxd_jp    时间: 2011-02-16 14:50
多谢azer兄....




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2