multithreading - 在 Rust 中,有没有办法使用工作线程来管理 1000 个通道?
问题描述
我查看了 mpsc 和 crossbeam,但没有找到我想要的东西。对于给定的接收器,当它通常会被recv阻塞时,我希望它停下来。稍后,当消息到达时,我希望它解除并处理收到的消息。可能有 1000 个通道,因此每个通道都有一个线程是行不通的。相反,我希望有几个工作线程来管理 1000 个通道。
解决方案
crossbeam::channel::Select是您正在寻找的。
或者,使用事件运行时(tokio 或诸如此类)。
推荐阅读
- java - 有没有办法将 Android 应用程序连接到 oneDrive 或 Sharepoint 中的 Excel 数据源?
- python-3.x - 如何使用python2中保存的python3 pkl文件导入
- python - 在init内部获取窗口宽度和高度
- javascript - 为什么我不能单击导航栏的锚标记?
- javascript - 如何修复“错误:未找到 HTMLHint,...,CodeMirror HTML linting 无法运行。” CodeMirror 中的错误
- javascript - EventSource 在 addEventListener 之前错过了第一条消息
- python - 如何使用模型中的值填充 PDF
- r - 使用 R Blogdown blogdown:::serve_site() 时出错
- c# - 使用 RestSharp 在 multipart/form-data POST 中包含文件时遇到问题
- c# - 当 RegisterEventBus “没有注册 Autofac.ILifetimeScope' 类型的服务时。”