python - 异步 I/O 多路复用(套接字和线程间)

标签 python linux windows asynchronous asyncsocket

我想让一个 Python 线程等待来自一个套接字(串行端口、TCP/IP 等)的数据,或者等待来自另一个线程的数据。

我想要一个可移植的 Windows 和 Linux 解决方案。

我正在寻找类似于 select.select() 的东西,但我相信我不能在 Windows 上使用 select.select() 进行线程间通信。

这容易实现吗?

最佳答案

你确定有必要使用线程吗?您是否正在使用一些需要使用它们的外国 API?

无论如何,使用 Twisted,您可以轻松地监听任何文件,如可移植的(包括串行端口和 TCP 套接字)。此外,假设您确实需要使用线程,Twisted 提供了多种工具来实现这一点。根据您的描述,最简单的方法是调用 reactor.callFromThread .如果你想取回数据而不是简单地调用 react 器线程中的函数,Twisted 提供了twisted.internet.threads.blockingCallFromThread ,它将阻塞直到 react 器线程中的函数返回(或者,如果它返回一个延迟,直到延迟触发)。

关于python - 异步 I/O 多路复用(套接字和线程间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112738/

相关文章:

python - SAT 求解器 SAGE

windows - 如何检测媒体是否插入可移动驱动器/读卡器

python - 当我在 virtualenv 中时无法 pip 安装包

python - 检测到特定颜色后停止网络摄像头

python - 可以使用 * 运算符解包的对象的正确类型注释?

linux - ARM 在 WinCE 和 Linux 上的调用约定?

linux - 配置多节点 hadoop 安装

linux - yum 更新显示已安装的软件包版本

c++ - Ctrl Z 的实际工作原理

Python 主线程中断