2010-09-29 39 views
25

如果我有2個處理器,例如一個池對象:「CHUNKSIZE」參數

p=multiprocessing.Pool(2) 

,我想遍歷目錄上的文件的列表,並使用地圖功能

可能有人解釋這是什麼功能的CHUNKSIZE:

p.map(func, iterable[, chunksize]) 

如果我例如CHUNKSIZE設置爲10並不意味着每10個文件應該以一個理線進行處理SOR?

回答

24

看着好像你幾乎正確的documentation for Pool.map:在chunksize參數將導致迭代拆分成該尺寸的片,每片被提交作爲單獨的任務。

所以在你的例子中,是的,map將會取前10個(大約),把它作爲單個處理器的任務提交......然後下一個10將作爲另一個任務提交,依此類推。請注意,這並不意味着這會使處理器每隔10個文件輪換一次,處理器#1很有可能會得到1-10和11-20,處理器#2會得到21-30和31-40。