基于trio的异步主循环的再实现
trio_asyncio的Python项目详细描述
trio-asyncio是asynciomainloop在 三人组。
基本原理
有相当多的异步兼容库。
另一方面,trio有任务和任务取消的固有概念。 另一方面,异步是基于链接未来的对象,尽管 有更好的语法。
因此,能够使用trio中的异步库是很有用的。
工作原理
“正常”异步主循环的核心是 提交给call_soon或 add_reader/add_writer。
在asyncio内的所有其他内容,即期货和async/await, 只是语法上的糖。没有任务的概念;而未来可以 被取消,这本身并不影响负责 实现它。
另一方面,三人组有真正的任务 异步返回值,并且负责提供 这个价值。
trio_asyncio实现一个任务,该任务运行(它自己的版本) 异步主循环。它还包含在这些 尽可能透明和正确的概念,它取代了一些 标准循环的关键功能。
这非常有效:trio_asyncio仅由~700行 代码(asyncio:~8000),但通过了完整的python 3.6测试套件,没有 错误。
trio_asyncio需要python 3.5.3或更高版本。