Python 中 multiprocessing 库使用

爬虫时单线程比较慢,使用 multiprocessing 库可以实现多进程.

常用组件:

Process 类

Process 类用于创建进程对象,需传入

  • 需要执行的函数, 传给 target
  • 函数的参数, 传给 args

创建好一个 Process 实例后可以使用 start() 方法启动。

语法:

1
Process([group], [target], [name], [args], [kwargs])

其中:

  • group, 指定进程组
  • target, 传递函数
  • name,指定进程名字
  • args, 以元组的方式传递参数
  • kwargs, 以字典的方式给 target 指定的函数传递参数

常用方法:

  • start(), 启动实例
  • is_alive(), 判断进程是否还存在
  • join([timeout]), 是否等待进程执行结束,或等待多少秒
  • terminate(), 终止子进程

常用属性:

  • name, 进程别名
  • pid, 进程号

进程池 Pool() 和 map()

Processing Pool, 用于创建多个进程.

定义一个 Pool:

1
2
3
import multiprocessing

pool = multiprocessing.Pool

此时 pool 为一个 Processing pool,其会根据当前运行环境来决定运行多少个进程,并把每次调用分别变成一个进程,例如 CPU 有 8 个核, 那么进程池的大小就会默认设置为 8.

利用 map() 方法,向 Processing pool 中传递函数和参数:

1
result = pool.map(func, range(10))

这里的参数应该是一个列表,包含每一次调用所需要的参数。


Python 中 multiprocessing 库使用
http://example.com/2022/08/26/Python-中-multiprocessing-库使用/
作者
Jie
发布于
2022年8月26日
许可协议