Python 是不是有任何异步非网络 I/O 框架?

Posted

技术标签:

【中文标题】Python 是不是有任何异步非网络 I/O 框架?【英文标题】:Are there any asynchronous non-network I/O frameworks for Python?Python 是否有任何异步非网络 I/O 框架? 【发布时间】:2013-03-07 06:17:21 【问题描述】:

很多时候,异步 I/O 与网络或基于文件的 I/O 同义(例如 Twisted、Eventlet、asyncore ...)。

但是,我目前正在编写一个 Python 工具包来控制电机。这在大多数情况下应该是异步的,以便可以同时控制多个电机。现在,一切都基于线程,但根本问题是如此根本,以至于我认为必须有一个异步框架来帮助解决这个问题。你知道吗?

【问题讨论】:

您到底在寻找什么“框架”?一个简单的select.epoll 主循环适用于多种情况,假设您通过类似文件描述符的对象与电机对话。任何支持这种机制的异步框架(例如,gevent)也可以正常工作。 与电机对话的方式有多种。有时是通过 CORBA 接口,有时是通过 TCP/IP,有时只是一个串行接口。我正在寻找的是一个以独立于平台的方式为我抽象出这些东西的系统。 【参考方案1】:

不需要第 3 方框架。使用标准库中的asyncore。

【讨论】:

以上是关于Python 是不是有任何异步非网络 I/O 框架?的主要内容,如果未能解决你的问题,请参考以下文章

Netty之非阻塞处理

网络I/O模型---同步异步阻塞非阻塞之惑

uvloop —— 超级快的 Python 异步网络框架

2017.07.12 Python网络编程之使用多路复用套接字I/O

关于Python Web框架——Tornado

简明网络I/O模型---同步异步阻塞非阻塞之惑