无法从pool.map中挑选对象模块

时间:2018-03-30 13:39:13

标签: python multiprocessing

我试图用一对数字和一些其他固定数据并行化循环。也就是说,我正在迭代一对数字,如(1,2),(6,4),(4,3)...与其他固定数据集。

   if (++x == 10 )
     System.out.println( "X is equal to 10");// this will not print if condition will tern false

myfunc正在处理两个输入,迭代列表,各种数据集列表。

'迭代列表'由[[1,2],[3,4],[5,6] ......],...组成 '各种数据集列表'包含各种类型的数据集,如[日期,浮动,数据框,...等],但它已修复。

当我运行上面提到的主程序时,python说

def myfunc(list of iterates, list of various datasets)
    doing stuff

if __name__ == '__main__':
    read_data(a lot)
    iterates = [[1,2], [3,8], [7,9], [12,5]] # means nothing

    pool = multiprocessing.Pool(processes=4)
    partial_myfunc = partial(myfunc, list of various datasets=some_data)
    results = pool.map(partial_myfunc, iterates)

有没有人能说出发生了什么?我真的需要一些帮助。

1 个答案:

答案 0 :(得分:0)

你可以调整你的线程代码如下:

...
max_threads = multiprocessing.cpu_count()

...
#create pool with max_threads - feel free to do max_threads-1 so your device is still usable
p = multiprocessing.Pool(max_threads)

results = p.map(partial_myfunc, iterates)
你正在使用python 2或3吗?您提供的信息越多,弄清楚就越容易:) 如果它有任何区别,请告诉我!