web analytics

Python 3 Asynchronous Programming异步编程简单入门

从基本概念和底层原理带您入门Python 3异步编程

python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板,如最新的微服务框架japronto,resquests per second可达百万级。

 

python还有一个优势是库(第三方库)极为丰富,运用十分方便。asyncio是python3.4版本引入到标准库,python3.5又加入了async/await特性。

以下PEP是本课程的参考资料:

  • PEP 255 — Simple Generators

  • PEP 342 — Coroutines via Enhanced Generators

  • PEP 380 — Syntax for Delegating to a Subgenerator

  • PEP 492 — Coroutines with async and await syntax

  • PEP 525 — Asynchronous Generators

从这些 PEPs 中可以看出 Python 生成器 / 协程的发展历程:先是 PEP 255 引入了简单的生成器;接着 PEP 342 赋予了生成器 send() 方法,使其可以传递数据,协程也就有了实际意义;接下来,PEP 380 增加了 yield from 语法,简化了调用子生成器的语法;然后,PEP 492 将协程和生成器区分开,使得其更不易被用错;最后,PEP 525 提供了异步生成器,使得编写异步的数据产生器得到简化。

本课程就是从最基本的yield语法开始,让大家了解协程和异步背后实现的机理,然后再讲解asyncio的基本的语法,从而让大家对异步和asyncio有深入的理解。

Course Information

Tags: ,

Course Instructor

Courseis.is
Courseis.is Author

Find what your next course is. We will help you find course, get skilled, and get hired.

This course does not have any sections.

Course Information

Tags: ,