Python 中 multiprocessing 库使用
爬虫时单线程比较慢,使用 multiprocessing
库可以实现多进程.
常用组件:
Process 类
Process 类用于创建进程对象,需传入
- 需要执行的函数, 传给
target
- 函数的参数, 传给
args
创建好一个 Process 实例后可以使用 start()
方法启动。
语法:
1 |
|
其中:
- group, 指定进程组
- target, 传递函数
- name,指定进程名字
- args, 以元组的方式传递参数
- kwargs, 以字典的方式给 target 指定的函数传递参数
常用方法:
- start(), 启动实例
- is_alive(), 判断进程是否还存在
- join([timeout]), 是否等待进程执行结束,或等待多少秒
- terminate(), 终止子进程
常用属性:
- name, 进程别名
- pid, 进程号
进程池 Pool() 和 map()
Processing Pool, 用于创建多个进程.
定义一个 Pool:
1 |
|
此时 pool
为一个 Processing pool,其会根据当前运行环境来决定运行多少个进程,并把每次调用分别变成一个进程,例如 CPU 有 8 个核, 那么进程池的大小就会默认设置为 8.
利用 map()
方法,向 Processing pool 中传递函数和参数:
1 |
|
这里的参数应该是一个列表,包含每一次调用所需要的参数。
Python 中 multiprocessing 库使用
http://example.com/2022/08/26/Python-中-multiprocessing-库使用/