在多核/多CPU机器上并行处理循环中的函数调用,可以使用多线程或多进程技术。以下是一些常用的方法:
concurrent.futures.ThreadPoolExecutor
来实现多线程。from concurrent.futures import ThreadPoolExecutor
def process_data(data):
# 处理数据的函数
with ThreadPoolExecutor() as executor:
results = executor.map(process_data, data_list)
concurrent.futures.ProcessPoolExecutor
来实现多进程。from concurrent.futures import ProcessPoolExecutor
def process_data(data):
# 处理数据的函数
with ProcessPoolExecutor() as executor:
results = executor.map(process_data, data_list)
asyncio
库来实现异步编程。import asyncio
async def process_data(data):
# 处理数据的异步函数
async def main():
tasks = []
for data in data_list:
tasks.append(asyncio.ensure_future(process_data(data)))
await asyncio.gather(*tasks)
asyncio.run(main())
这些方法可以帮助您在多核/多CPU机器上并行处理循环中的函数调用,从而提高程序的性能。
领取专属 10元无门槛券
手把手带您无忧上云