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 执行此操作的提示,但我不知道该怎么做。有任何想法吗?
映射(函数,可迭代[,块大小])
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)