python爬虫多线程、线程池、协程笔记

异步爬虫的方式:

  —— 1.多线程, 多进程(不建议):

      好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以异步执行。

      弊端:无法无限制的开启多线程或者多进程。

  —— 2.线程池、进程池(适当的使用):

      好处:可以降低系统对进程或者线程创建和销毁的一个频率,从而很好的降低系统的开销。

      弊端:池中线程或进程的数量有上限。

 

 —— 3.单线程+异步协程(推荐):

    event_loop:事件循环,我们可以将协程对象注册到事件循环中,它会被事件循环使用。我们可以使用 async 关键字来定义一个方法,这个方法在调用时不会立即执行,而是返回一个协程对象。

 

    coroutine:协程对象,我们可以将协程对象注册到事件循环中,它会被事件循环调用。我们可以使用 async 关键字来定义一个方法,这个方法在调用时不会立即被执行,而是返回一个协程对象。

 

    task:任务,它是对协程对象的近一步封装,包含了任务的各个状态。

 

    future:代表将来执行或没有执行的任务,实际上和task没有本质区别。

 

    async:定义一个协程。

 

    await:用来挂起阻塞方法的执行。

posted @ 2021-11-21 15:41  天叔  阅读(210)  评论(0)    收藏  举报