【问题标题】:write an eventloop instead of using existing asyncio evenloop [closed]编写事件循环而不是使用现有的 asyncio 事件循环 [关闭]
【发布时间】:2018-12-14 06:42:00
【问题描述】:

好的,因此可以使用给定的 asyncio 的事件循环 (Writing an EventLoop without using asyncio) 编写自定义 eventloop

现在问题来了,为什么?为什么更喜欢在 asyncio 的事件循环上编写自定义?

【问题讨论】:

  • 我相信这是遗产。 asyncio 是 Python 标准中的新功能,在关键字“async”和“await”之前是“可用的”。例如,Web 框架 Tornado 可以使用非阻塞 API,无需 asyncio。但我相信今天,最好的做法是使用 AsyncIO。

标签: python-3.x python-asyncio event-loop


【解决方案1】:

为什么更喜欢在 asyncio 的事件循环上编写自定义?

如果现有方法不能满足您的需求,您通常会发明一些新的东西。或者,如果您认为自己可以更有效或更方便地做事,也可能是这样。

首先值得注意的是,asyncio 本身提供了multiple event loop implementations。这样做的原因是他们建立在不同的低级 OS API 之上,可以behave differently。您可以选择(或编写自己的事件循环)最适合您的任务。

有时人们会创建自己的事件循环实现以获得更好的性能。 uvloop 就是一个很好的例子。

有时人们会在其他非异步事件循环之上创建事件循环。例如quamashQt 之上提供事件循环。它允许使用 PyQt 编写异步程序。

【讨论】:

  • 在关于替代事件循环的主题时,您可能还想提及curiotrio,事件循环的编写目标没有异步兼容性,并且在理念和实现上都与它不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 2021-04-21
  • 2021-09-29
  • 1970-01-01
相关资源
最近更新 更多