在 Python 中,可以使用 concurrent.futures 模块来实现并行运行 lambda 函数或其他可调用对象的方法。concurrent.futures 提供了 ThreadPoolExecutor 和 ProcessPoolExecutor 类,可以用于创建线程池和进程池,从而并行执行多个任务。
下面是一个示例代码,演示如何使用 ThreadPoolExecutor 并行运行 lambda 函数:
import concurrent.futures
# 定义一个 lambda 函数
add_one = lambda x: x + 1
# 创建线程池
with concurrent.futures.ThreadPoolExecutor() as executor:
# 提交 lambda 函数到线程池中,并获取返回的 Future 对象
future1 = executor.submit(add_one, 1)
future2 = executor.submit(add_one, 2)
# 获取结果
result1 = future1.result()
result2 = future2.result()
print(result1) # 输出: 2
print(result2) # 输出: 3
在上面的代码中,首先定义了一个 lambda 函数 add_one,然后使用 ThreadPoolExecutor 创建了一个线程池 executor。然后,使用 executor.submit() 方法将 lambda 函数提交到线程池中,并返回一个 Future 对象。通过 Future.result() 方法可以获取任务的执行结果。
除了 ThreadPoolExecutor,还可以使用 ProcessPoolExecutor 来创建进程池,实现多进程并行执行任务的效果。使用方法类似,只需要将 ThreadPoolExecutor 替换为 ProcessPoolExecutor 即可。