异步的glib事件循环集成

asyncio-glib的Python项目详细描述


异步的glib事件循环集成

此模块提供python 3asyncio事件循环实现 利用了GLib event loop。这允许混合。 在同一线程中使用异步和一些基于glib的代码。

启用此事件循环可以通过以下代码实现:

import asyncio
import asyncio_glib
asyncio.set_event_loop_policy(asyncio_glib.GLibEventLoopPolicy())

此时,asyncio.get_event_loop()将返回一个GLibEventLoop

实施策略

为了便于维护,我已经尝试了重复使用 库异步代码尽可能多。为此,我创造了一个 实现^{}api。合并这个 用现有的{{CD4}}类,我们有我们的 事件循环实现。

为了测试事件循环的功能,我重用了 针对新选择器和事件运行的标准库测试套件 循环。

目前选择器将私有 selectors._BaseSelectorImpl类,它是 未来的兼容性问题。如果是这样的话,拿一份本地的 是一种选择。

与gbulb比较

Gbulb是异步事件循环的另一个实现 油嘴滑舌。主要区别是:

  • gbulb直接从glib main发送异步回调 循环。相反,asyncio glib迭代glib主循环,直到 异步事件已准备就绪,然后具有异步事件循环调度 事件。

  • gbulb有一些windows兼容代码,而asyncio glib有 在那个平台上没有测试。

  • asyncio glib本质上是一个未修改的SelectorEventLoop,因此 应该会自动从新的python版本中获得任何特性。

asyncio glib代码库的大小也是gbulb的十分之一。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jetty是否有请求缓存?   数组中的java 2值与我的数据帧中的2列对应   对象序列化期间的java DbUtils类型转换问题   java根面板中不显示所有单独的面板   java通过代理或SSH隧道连接Hbase API   java困惑:与经典MVC控制器相比,JSF2中bean的角色   java在我的Triangle类中“找不到符号错误”   java在Android中设置从路径到自定义按钮的图像   java不绕轨道旋转椭圆   AES在socket上搞砸了序列化/反序列化。无效的流标头。JAVA   java在数组中搜索term和if语句   线程“main”java中出现异常。util。正则表达式。PatternSyntaxException:在索引0附近悬挂元字符“*”*   Websphere上的java Google反射无法打开url连接   java为什么inc/dec频道什么都不做?   java KeyListener无法访问keyPressed方法