4 个版本
0.1.3 | 2024年3月5日 |
---|---|
0.1.2 | 2024年3月5日 |
0.1.1 | 2024年3月5日 |
0.1.0 | 2024年3月5日 |
533 在 并发 中
7KB
106 代码行
异步实用工具
这个简单的crate是为了管理我的Tokio JoinHandles而创建的。异步运行时决定如何处理启动的任务,Tokio采用了将启动的任务分离出去的模型。无论你是否认为这是一个好的选择,为了避免泄漏任务并便于任务管理,使任务“附加”到某个句柄并在句柄释放时取消它们是有用的。这使得结构化并发变得更加容易,因为你不需要手动通过某些通道发送值,而只需确保父任务持有子任务的 TaskHandle 而不释放它即可。这正是这个crate主要来源的地方。目前它提供了3(实际上是2)个结构来帮助管理并发。
提供类型
- TaskHandle - 在 tokio::task::JoinHandle 上调用
to_task_handle()
后获得的 JoinHandle 包装器。在线程句柄释放时中止内部任务。 - TaskSet - Tokio JoinSet 的别名。Tokio JoinSet 在释放时已经中止任务。
- TaskMap - HashMap<K, TaskHandle> 的包装器。如果你想要对你的任务“集合”有更多的控制,这会更容易看到是否已经启动了一些任务。
所有这些类型在释放时都会中止任务。将来我可能会在这里添加更多我在日常编码中找到的有用的“异步”实用工具。
依赖项
~2.3–4MB
~65K SLoC