在Python中,可以使用多线程或多进程来实现并行调用函数的提取返回值。下面是两种解决方法的示例代码:
import concurrent.futures
# 定义一个函数,接受一个参数并返回结果
def calculate_square(n):
return n ** 2
# 创建一个线程池
with concurrent.futures.ThreadPoolExecutor() as executor:
# 提交多个任务到线程池,并将返回的future对象存储在列表中
futures = [executor.submit(calculate_square, i) for i in range(10)]
# 遍历future对象列表,使用result()方法提取返回值
for future in concurrent.futures.as_completed(futures):
result = future.result()
print(result)
import concurrent.futures
# 定义一个函数,接受一个参数并返回结果
def calculate_square(n):
return n ** 2
# 创建一个进程池
with concurrent.futures.ProcessPoolExecutor() as executor:
# 提交多个任务到进程池,并将返回的future对象存储在列表中
futures = [executor.submit(calculate_square, i) for i in range(10)]
# 遍历future对象列表,使用result()方法提取返回值
for future in concurrent.futures.as_completed(futures):
result = future.result()
print(result)
这些代码示例使用concurrent.futures模块中的ThreadPoolExecutor和ProcessPoolExecutor来创建线程池和进程池。然后,使用submit()方法将要执行的函数和参数提交到线程池或进程池中,并返回future对象。最后,使用as_completed()函数遍历future对象列表,并使用result()方法提取返回值。
上一篇:并行的异步任务不会同时执行
下一篇:并行调用旧的R项目,使用源代码。