![e650d557bca28be079d8a6b95b0bb7e4.gif](https://i-blog.csdnimg.cn/blog_migrate/14590b08491fb85f598324dfb0985c83.gif)
![06e471cc89358c56d4fe13c95a2b2c38.gif](https://i-blog.csdnimg.cn/blog_migrate/5485eec4833da84a15a048764094d79d.gif)
你再主动一点点
我们就有故事了
你是否听到人们说过,异步 Python 代码比“普通(或同步)Python 代码更快?果真是那样吗?
1. “同步”和“异步”是什么意思?
Web 应用程序通常要处理许多请求,这些请求在很短的时间段内来自不同的客户端。为避免处理延迟,必须考虑并行处理多个请求,这通常称为“并发”。 在本文中,我将继续使用 Web 应用程序作为例子,但是要记住还有其它类型的应用程序也从并发完成多个任务中获益,因此这个讨论并不仅仅是针对 Web 应用程序的。 术语“同步”和“异步”指的是编写并发应用程序的两种方式。所谓的“同步”服务器使用底层操作系统支持的线程和进程来实现这种并发性。下面是同步部署的一个示意图:
![0cc4f57d1fae7977cf848d389ca2f9e0.png](https://i-blog.csdnimg.cn/blog_migrate/64f40db030fbc2eebf4770ce0928d4e9.png)
在这种情况下,我们有 5 台客户端,都向应用程序发送请求。这个应用程序的访问入口是一个 Web 服务器,通过将服务分配给一个服务器 worker 池来充当负载均衡器,这些 worker 可以实现为进程、线程或者两者的结合。这些 worker 执行负载均衡器分配给他们的请求。你使用 Web 应用程序框架(例如 Flask 或 Django)编写的应用程序逻辑运行在这些 worker 中。 这种类型的方案对于有多个 CPU 的服务器比较好,因为你可以将 worker 的数量设置为 CPU 的数量,这样你就能均衡地利用你的处理器核心,而单个 Python 进程由于全局解释器锁(GIL)的限制无法实现这一点。 在缺点方面ÿ