关于 dart-concurrency
面向 Dart 开发者的并发处理技能指南,帮助明确异步任务的所有权、顺序、取消和错误传播。覆盖 Future、Stream 与 isolate,并强调针对竞态和生命周期进行验证。
主要功能
- 01按单次结果或连续事件选择 Future 或 Stream
- 02管理订阅和控制器的生命周期
- 03防止过期请求覆盖新状态
- 04为 CPU 密集任务评估 isolate
- 05保留错误堆栈并处理取消
适用场景
- 01排查异步竞态或资源泄漏
- 02避免较早请求覆盖最新界面状态
- 03测试取消、释放及乱序完成行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill dart-concurrency安装后在 Claude Code 中输入/dart-concurrency确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/cases.jsonreferences/isolate-communication-and-worker-pools.mdstream-cancellation-and-debouncing.md详细介绍
Dart 并发
明确所有权、顺序、取消和错误传播。
先诊断
确定生产者、消费者、生命周期所有者、顺序要求,以及工作变得过时后的预期行为。先复现竞态或泄漏,再引入类似同步机制的处理。
决策规则
- 一个结果使用
Future,一段时间内的多个结果使用Stream。 - 除非明确需要独立执行并处理错误,否则避免启动后不等待的工作。
- 根据所有者对象的生命周期取消订阅和控制器。
- 在异步间隙后更新 UI 时,使用适合项目的生命周期机制进行保护。
- 通过取消、令牌、排序或仅保留最新结果的逻辑,避免过时请求覆盖较新的状态。
- 对经测量确认的 CPU 密集型工作或隔离需求使用 isolates,而非常规网络 I/O。
- 在 isolate 边界间传递可转移的值,并将失败传递给调用方。
- 转换错误时保留堆栈跟踪。
不要把异步所有权藏在全局辅助函数中。将重试和超时策略放在了解幂等性和用户意图的边界处。
验证
测试成功、失败、取消/释放以及乱序完成的情况。运行静态分析;如果时序是问题的关键,则添加有针对性的压力测试或虚拟时间测试。
参考资料
- 处理繁重的 CPU 计算、端口消息传递或后台工作线程时,请阅读isolate 通信和工作池。
- 管理订阅生命周期、竞态条件、防抖/节流或仅保留最新结果语义时,请阅读流取消和防抖。
来源
评论
支持 Markdown