Python应用实战案例-Python协程管理精讲万字长文(建议收藏)
生活随笔
收集整理的这篇文章主要介绍了
Python应用实战案例-Python协程管理精讲万字长文(建议收藏)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
前言
首先,本文不是带你浏览源代码,然后对照原始代码给你讲 Python 标准的实现。相反,我们会从实际问题出发,思考解决问题的方案,一步步体会解决方案的演进路径,最重要的,希望能在过程中获得知识系统性提升。
本文仅是提供了一个独立的思考方向,并未遵循历史和现有实际具体的实现细节。
其次,阅读这篇文章需要你对 Python 比较熟悉,至少了解 Python 中的生成器 generator 的概念。
0x01 IO 多路复用
这是性能的关键。但我们这里只解释概念,其实现细节不是重点,这对我们理解 Python 的协程已经足够了,如已足够了解,前进到 0x02。
首先,你要知道所有的网络服务程序都是一个巨大的死循环,你的业务逻辑都在这个循环的某个时刻被调用:
def handler(request): # 处理请求 pass# 你的 handler 运行在 while 循环中 while True: # 获取一个新请求 request = accept() # 根据路由映射获取到用户写的业务逻辑函数 handler = get_handler(request) # 运行用户的handler,处理请求 handler(request)设想你的 Web 服务的某个 handler,在接收到请求后需要一个 API 调用才能响应结果。
对于最传统的网络应用,你的 API 请求发出去后在等待响应,此时程序停止运行,甚至新的请求也得在响应结束后才
总结
以上是生活随笔为你收集整理的Python应用实战案例-Python协程管理精讲万字长文(建议收藏)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 全国大学生数学建模如何轻松获得一等奖,我
- 下一篇: Python可视化应用实战-如何制作酷炫