25
如果我有2個處理器,例如一個池對象:「CHUNKSIZE」參數
p=multiprocessing.Pool(2)
,我想遍歷目錄上的文件的列表,並使用地圖功能
可能有人解釋這是什麼功能的CHUNKSIZE:
p.map(func, iterable[, chunksize])
如果我例如CHUNKSIZE設置爲10並不意味着每10個文件應該以一個理線進行處理SOR?
如果我有2個處理器,例如一個池對象:「CHUNKSIZE」參數
p=multiprocessing.Pool(2)
,我想遍歷目錄上的文件的列表,並使用地圖功能
可能有人解釋這是什麼功能的CHUNKSIZE:
p.map(func, iterable[, chunksize])
如果我例如CHUNKSIZE設置爲10並不意味着每10個文件應該以一個理線進行處理SOR?
看着好像你幾乎正確的documentation for Pool.map:在chunksize
參數將導致迭代拆分成約該尺寸的片,每片被提交作爲單獨的任務。
所以在你的例子中,是的,map
將會取前10個(大約),把它作爲單個處理器的任務提交......然後下一個10將作爲另一個任務提交,依此類推。請注意,這並不意味着這會使處理器每隔10個文件輪換一次,處理器#1很有可能會得到1-10和11-20,處理器#2會得到21-30和31-40。