协程框架

Posted zxfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了协程框架相关的知识,希望对你有一定的参考价值。

import requests
import gevent 
from gevent import monkey

monkey.patch_all()


headers = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
}

def download(url):
    print("start:",url)
    content = requests.get(url, headers=headers).content
    gevent.sleep(1)
    print(len(content), url)
    pass    

def main():
    gevent.joinall([
        gevent.spawn(download, "http://www.baidu.com"),    
        gevent.spawn(download, "http://www.bilibili.com"),    
        gevent.spawn(download, "http://www.163.com"),    
        gevent.spawn(download, "http://www.sina.com"),   
    ])
    
    
if __name__ == "__main__":
    main()

以上是关于协程框架的主要内容,如果未能解决你的问题,请参考以下文章

游戏服务器框架skynet源码分析--协程调度模型

requests 已过时,初探协程与异步 http 框架 httpx

进程和线程和协程之间的关系

协程原理再议

text 来自Codyhouse框架的Browserlist片段源代码

Kotlin 协程协程底层实现 ① ( Kotlin 协程分层架构 | 基础设施层 | 业务框架层 | 使用 Kotlin 协程基础设施层标准库 Api 实现协程 )