在 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
即可。