小结
在本章节,我们学习了异步、阻塞、非阻塞编程。为了了解这些行为,我们使用asyncio
模块的基本机制写了一些例子。
asyncio
模块是对python
异步编程进行革命的一个尝试。Guido Van Rossum 在探索性选择和提取基本机制为这些选择提供清晰的API方面非常成功。yield from
语法产生是为了增强一些使用协程的程序的表现力,使程序员免去写回调函数的负担。除此之外,asyncio
模块拥有与其它应用程序集成的能力。
快到本书的结束了,写这本书还是很有挑战性的,希望它对你有所帮助。本书中有很多东西没有介绍,比如 IPython
, mpi4py
, Greenlets
, Eventlets
, 等等。
基于本书提供的内容,你可以自己做实验比较不同的工具。几乎在本书的每一个章节都用了两个相关例子来介绍,这也说明了Python可以在不改变核心代码的基础上灵活的替换不同的工具。
我们已经学习了一些全局解释器锁 (GIL) 和一些绕过 GIL 副作用的变通方法。 相信主要的 Python 实现(CPython)不会解决与 GIL 相关的问题; 只有未来才能揭示这一点。 GIL 是 Python 社区中一个困难且反复出现的话题。 另一方面,我们有 PyPy 实现,它带来了 JIT 和其他性能改进。 如今,PyPy 团队正在尝试将软件事务内存 (STM) 用于 PyPy,旨在移除 GIL。
最后更新:
2023年2月27日
创建日期: 2015年6月25日
创建日期: 2015年6月25日