Python 多处理池.map

Joh*_*n28 3 python pool multiprocessing

我尝试在 python 中使用多处理来读取文件。这是一个小例子:

import multiprocessing
from time import *

class class1():
    def function(self, datasheetname):
        #here i start reading my datasheet

if __name__ == '__main__':
    #Test with multiprosessing
    pool = multiprocessing.Pool(processes=4)
    pool.map(class1("Datasheetname"))
    pool.close()
Run Code Online (Sandbox Code Playgroud)

现在我收到以下错误:

类型错误:map() 缺少 1 个必需的位置参数:“可迭代”

在该板的另一个线程中,我得到了使用 ThreadPool 执行此操作的提示,但我不知道该怎么做。有任何想法吗?

sir*_*rfz 5

池.map

映射(函数,可迭代[,块大小])

map() 内置函数的并行等效项(但它仅支持一个可迭代参数)。它会阻塞,直到结果准备好为止。

此方法将可迭代对象分成多个块,并将其作为单独的任务提交到进程池。这些块的(近似)大小可以通过将 chunksize 设置为正整数来指定。

您需要传递一个可迭代对象,其中每个元素都func作为每个进程中的参数传递给目标。

例子:

def function(sheet):
    # do something with sheet
    return "foo"

pool = Pool(processes=4)
result = pool.map(function, ['sheet1', 'sheet2', 'sheet3', 'sheet4'])
# result will be ['foo', 'foo', 'foo', 'foo']
Run Code Online (Sandbox Code Playgroud)