Python multiprocessing多进程编程实战指南

山间有风
山间有风
发布时间:2026-10-13| 6人浏览过
原创

本文介绍Python中multiprocessing模块的多进程编程方法。通过具体代码实例,演示如何创建独立进程、获取进程ID,以及使用进程池Pool进行任务管理。内容涵盖Process类的基础用法和Pool池的高级特性,帮助开发者掌握Python并发编程的核心技巧。

Python多进程编程概述

在前文《多线程与多进程的比较》中,我们曾探讨过一种多进程编程的实现路径。

接下来,我们将重点介绍另一种常用的多进程编程方式,即利用Python内置的multiprocessing模块进行开发。

multiprocessing核心代码解析


import multiprocessing
import time


def get_html(n):
  time.sleep(n)
  print('sub process %s' % n)
  return n


if __name__ == '__main__':
  # 多进程编程
  process = multiprocessing.Process(target=get_html, args=(2,))
  process.start()
  print(process.pid) # 进程号
  process.join()
  print('main process success!')

  # 使用多进程池编程
  pool = multiprocessing.Pool(multiprocessing.cpu_count())
  # result =pool.apply_async(get_html, (3,))
  # # 关闭pool
  # pool.close()
  # # 等待所有任务完成
  # pool.join()
  # print(result.get())

  # 使用imap方法, 有序执行,且直接返回结果值
  # for result in pool.imap(get_html, [1, 5, 3]):
  #   print('{} sleep success'.format(result))
  # pool.close()

  # imap_unordered 与imap相似,但是谁先执行完成,谁先返回结果
  # for result in pool.imap_unordered(get_html, [1, 5, 3]):
  #   print('{} sleep success'.format(result))
  # pool.close()

以上即为本文的全部内容,希望这些示例能对您的学习有所帮助,同时也欢迎大家继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。