你可能会想,为什么你不能运行 100 个同步 worker,那样,这两个服务器就会有相同的并发能力 。要注意,每个 worker 需要自己的 Python 解释器以及与之相关联的所有资源,再加上一份单独的应用程序拷贝及其资源 。你的服务器和应用程序的大小将决定你可以运行多少个 worker 实例,但通常这个数字不会很大 。另一方面,异步任务非常轻量,都运行在单个 worker 进程的上下文中,因此具有明显优势 。
综上所述,只有如下场景时,我们可以说异步可能比同步快:
- 存在高负载(没有高负载,访问的高并发性就没有优势)
- 任务是 I/O 绑定的(如果任务是 CPU 绑定的,那么超过 CPU 数目的并发并没有帮助)
- 你查看单位时间内的平均请求处理数 。如果你查看单个请求的处理时间,你不会看到有很大差别,甚至异步可能更慢,因为异步有更多并发的任务在争夺 CPU 。
- 异步应用程序只有在高负载下才会比同步应用程序做得更好
- 多亏了 greenlets,即使你用一般方式写代码并使用 Flask 或 Django 之类的传统框架,也能从异步中受益 。
作者介绍:
Miguel Grinberg 是一名软件工程师、摄影师和电影制作人,住在爱尔兰的德罗赫拉 。你可以在 Facebook 、 google+ 、 LinkedIn 、 Github 和 Twitter 关注他 。
原文链接:
https://blog.miguelgrinberg.com/post/sync-vs-async-python-what-is-the-difference
【同步与异步Python有何不同?】
推荐阅读
- 明朝时,腊八粥是皇帝在腊八节赏赐群臣的神圣食物 腊八粥与明朝皇帝谁有关
- 荷香茯砖茶的功效,茯砖茶的新茶与陈茶究竟哪个好
- 苦茶叶的功效与作用,苦荞茶的功效与作用
- 黑茶与普洱迷你配,普洱熟茶与黑茶的区别
- 喝菊花茶副作用,菊花茶的功效与副作用
- 生茶与熟茶功效,生茶和熟茶哪个减肥效果好
- 好茶有四个尺度,霍山黄达茶的鉴别与采购介绍
- 慈禧与光绪怎么死的 慈禧与光绪皇帝谁先死的
- 红茶姜水的功效与作用,黄芪红茶的功效与作用怎么样
- 梨花茶的功效与作用,详谈关于芍药花茶基本的功效与作用