python爬虫多线程、线程池、协程笔记
异步爬虫的方式:
—— 1.多线程, 多进程(不建议):
好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以异步执行。
弊端:无法无限制的开启多线程或者多进程。
—— 2.线程池、进程池(适当的使用):
好处:可以降低系统对进程或者线程创建和销毁的一个频率,从而很好的降低系统的开销。
弊端:池中线程或进程的数量有上限。
—— 3.单线程+异步协程(推荐):
event_loop:事件循环,我们可以将协程对象注册到事件循环中,它会被事件循环使用。我们可以使用 async 关键字来定义一个方法,这个方法在调用时不会立即执行,而是返回一个协程对象。
coroutine:协程对象,我们可以将协程对象注册到事件循环中,它会被事件循环调用。我们可以使用 async 关键字来定义一个方法,这个方法在调用时不会立即被执行,而是返回一个协程对象。
task:任务,它是对协程对象的近一步封装,包含了任务的各个状态。
future:代表将来执行或没有执行的任务,实际上和task没有本质区别。
async:定义一个协程。
await:用来挂起阻塞方法的执行。

浙公网安备 33010602011771号