Python 中具有多个参数的 pool map
本文将解释使用 Python 中的 multiprocessing
模块执行并行函数执行的不同方法。
multiprocessing
模块提供了使用多个输入执行并行函数执行并在不同进程之间分配输入数据的功能。
我们可以通过在 Python 中使用以下方法来并行执行具有不同输入值的函数。
使用 pool.map()
方法执行并行函数
pool.map(function, iterable)
方法返回一个迭代器,它将作为输入提供的 function
应用于输入 iterable
的每个项目。因此,如果我们想用不同的输入并行执行函数
,我们可以使用 pool.map()
方法。
下面的示例代码演示了如何使用 pool.map()
方法来并行化 Python 中的函数执行。
from multiprocessing import Pool
def myfunc(x):
return 5 + x
if __name__ == "__main__":
with Pool(3) as p:
print(p.map(myfunc, [1, 2, 3]))
输出:
[6, 7, 8]
如果输入 function
有多个参数,我们可以使用 pool.map()
方法和 partial()
函数并行执行该函数。
下面的示例演示了如何使用 Python 中的 pool.map()
使用多个参数并行执行函数。
from multiprocessing import Pool
from functools import partial
def multiply(x, y):
print(x * y)
if __name__ == "__main__":
with Pool(3) as p:
p.map(partial(multiply, 5), [1, 2, 3])
输出:
5
10
15
从上面的例子可以看出,这种方法的缺点是我们不能改变第一个参数的值。
使用 pool.starmap()
方法执行具有多个参数的并行函数
如果我们想用多个参数并行执行一个函数,我们可以使用 pool.starmap(function, iterable)
方法。
与 pool.map(function, iterable)
方法一样,pool.starmap(function, iterable)
方法返回一个迭代器,它将作为输入提供的 function
应用到 iterable
的每个项目。尽管如此,它还是希望每个输入项 iterable
被安排为输入 function
参数 iterables。
通过使用 pool.starmap()
方法,我们可以为 function
的所有参数提供不同的值,这与 pool.map()
方法不同。
我们可以通过以下方式使用 pool.starmap()
方法在 Python 中使用多个参数执行并行函数执行。
from multiprocessing import Pool
def print_name(name, lname):
print("full name =", name, lname)
if __name__ == "__main__":
with Pool(3) as p:
p.starmap(print_name, [("Thomas", "Scott"), ("Ali", "Khan")])
输出:
full name = Thomas Scott
full name = Ali Khan
相关文章
Python 中的平滑数据
发布时间:2023/12/20 浏览次数:101 分类:Python
-
本教程演示了如何在 Python 中平滑图形中的曲线。Python 在数据分析和可视化方面有着广泛的应用。
Python 中捕获键盘中断错误
发布时间:2023/12/20 浏览次数:187 分类:Python
-
本教程讨论如何在 Python 中捕获 KeyboardInterrupt。当用户使用 Ctrl + C 或 Ctrl + Z 手动尝试停止正在运行的程序时,或在 Jupyter Notebook 的情况下通过中断内核
在 Python 中实现低通滤波器
发布时间:2023/12/20 浏览次数:101 分类:Python
-
本教程讨论如何在 python 中创建低通滤波器。低通滤波器是信号处理基础中的一个术语,经常用于过滤信号以获得更准确的结果。
在 Python 中使用 requests 模块实现 Curl 命令
发布时间:2023/12/20 浏览次数:72 分类:Python
-
在本文中,你将学习如何使用 Python 中的 Requests 模块实现 curl 命令。我们讨论了 Get、Post、Put 和 Delete curl 命令。
在 Python 中使用 fetchall() 从数据库中提取元素
发布时间:2023/12/20 浏览次数:142 分类:Python
-
本文解释了 Python 中 fetchall() 方法的实现。该程序为数据库创建一个游标并处理错误异常。导出的输出给出了查询中提供的特定表中的元素列表。
在 Python 中解析日志文件
发布时间:2023/12/20 浏览次数:180 分类:Python
-
了解如何在 Python 中解析日志文件。日志文件包含有关在软件系统或应用程序运行期间发生的事件的信息。这些事件包括错误、用户提出的请求、Bug 等。
在 Python 中声明一个没有值的变量
发布时间:2023/12/20 浏览次数:94 分类:Python
-
在本教程中,我们将讨论如何在 Python 中声明一个变量而不赋值。变量是保留的内存位置,可以存储一些值。换句话说,Python 程序中的变量将数据提供给计算机以处理操作。
在 Python 中定义类全局变量
发布时间:2023/12/20 浏览次数:77 分类:Python
-
本教程演示了如何定义类全局变量。全局变量是一个可见变量,可以在程序的每个部分使用。全局变量也不在任何函数或方法中定义。
在 Python 中的 Lambda 函数中传递多个参数
发布时间:2023/12/20 浏览次数:133 分类:Python
-
了解如何在 Python 中的 Lambda 函数中传递多个参数。lambda 形式或 lambda 表达式是 Python 中的匿名函数。它们是可以使用 Python 中保留的 lambda 关键字创建的内联函数。