跳转至

小结

在本章节,我们学习了异步、阻塞、非阻塞编程。为了了解这些行为,我们使用asyncio模块的基本机制写了一些例子。

asyncio模块是对python异步编程进行革命的一个尝试。Guido Van Rossum 在探索性选择和提取基本机制为这些选择提供清晰的API方面非常成功。yield from语法产生是为了增强一些使用协程的程序的表现力,使程序员免去写回调函数的负担。除此之外,asyncio模块拥有与其它应用程序集成的能力。

快到本书的结束了,写这本书还是很有挑战性的,希望它对你有所帮助。本书中有很多东西没有介绍,比如 IPython, mpi4py, Greenlets, Eventlets, 等等。

基于本书提供的内容,你可以自己做实验比较不同的工具。几乎在本书的每一个章节都用了两个相关例子来介绍,这也说明了Python可以在不改变核心代码的基础上灵活的替换不同的工具。

我们已经学习了一些全局解释器锁 (GIL) 和一些绕过 GIL 副作用的变通方法。 相信主要的 Python 实现(CPython)不会解决与 GIL 相关的问题; 只有未来才能揭示这一点。 GILPython 社区中一个困难且反复出现的话题。 另一方面,我们有 PyPy 实现,它带来了 JIT 和其他性能改进。 如今,PyPy 团队正在尝试将软件事务内存 (STM) 用于 PyPy,旨在移除 GIL


最后更新: 2023年2月27日
创建日期: 2015年6月25日