如何在Python中实现并行处理?

原创 迷南。 2025-01-29 20:30 73阅读 0赞

在Python中,你可以使用各种库来实现并行处理。以下是几种常用的库和方法:

  1. multiprocessing:Python标准库中的一个模块,用于创建进程进行并行计算。

    示例:

    1. import multiprocessing
    2. def worker(num):
    3. return num * num
    4. if __name__ == '__main__':
    5. # 创建进程池
    6. pool = multiprocessing.Pool()
    7. # 分配任务到进程中
    8. results = pool.map(worker, [1, 2, 3]]))
    9. # 关闭进程池
    10. pool.close()
    11. pool.join()
    12. print(results) # 输出:[1, 4, 9]]
  2. concurrent.futures:Python 3.2引入的新模块,用于创建线程池和执行异步任务。

    示例:

    1. import concurrent.futures
    2. def worker(num):
    3. return num * num
    4. if __name__ == '__main__':
    5. with concurrent.futures.ThreadPoolExecutor() as executor:
    6. # 提交任务到线程池
    7. future = executor.submit(worker, 1))
    8. result = future.result()
    9. print(result) # 输出:1
  3. asyncio:Python 3.7引入的新模块,用于实现异步编程。使用协程和事件循环可以创建并行任务。

    示例:

    1. import asyncio
    2. async def worker(num):
    3. await asyncio.sleep(0.5) # 模拟耗时操作
    4. return num * num
    5. if __name__ == '__main__':
    6. loop = asyncio.get_event_loop()
    7. future = loop.create_task(worker(1)))
    8. try:
    9. result = future.result() # 等待协程完成任务
    10. print(result) # 输出:1
    11. except KeyboardInterrupt:
    12. # 在用户按下 Ctrl+C 来中断程序时,处理退出
    13. loop.stop()
    14. print('Program stopped by user.')

    以上示例展示了如何使用multiprocessing, concurrent.futuresasyncio 进行并行处理。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,73人围观)

还没有评论,来说两句吧...

相关阅读