使用Python中的多处理子句

idu*_*ude 7 python multiprocessing with-statement python-3.x

在python 3中,您现在可以使用如下的with子句安全地打开文件:

with open("stuff.txt") as f:
    data = f.read()
Run Code Online (Sandbox Code Playgroud)

使用此方法,我不必担心关闭连接

我想知道我是否可以为多处理做同样的事情.例如,我当前的代码如下所示:

pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
pool.starmap(function,list)
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用with子句来简化这个吗?

nox*_*fox 11

with multiprocessing.Pool( ... ) as pool:
    pool.starmap( ... )
Run Code Online (Sandbox Code Playgroud)

https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool

版本3.3中的新功能:池对象现在支持上下文管理协议 - 请参阅上下文管理器类型.enter()返回池对象,exit()调用terminate().

您可以在该Pool部分的底部看到一个示例.