mcpField
D
dart-concurrency

dart-concurrency

github.com/thienqo开发1576 次安装今天更新
代码仓库

关于 dart-concurrency

面向 Dart 开发者的并发处理技能指南,帮助明确异步任务的所有权、顺序、取消和错误传播。覆盖 Future、Stream 与 isolate,并强调针对竞态和生命周期进行验证。

主要功能

  1. 01按单次结果或连续事件选择 Future 或 Stream
  2. 02管理订阅和控制器的生命周期
  3. 03防止过期请求覆盖新状态
  4. 04为 CPU 密集任务评估 isolate
  5. 05保留错误堆栈并处理取消

适用场景

  1. 01排查异步竞态或资源泄漏
  2. 02避免较早请求覆盖最新界面状态
  3. 03测试取消、释放及乱序完成行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thienqo/flutter-skills --skill dart-concurrency

安装后在 Claude Code 中输入/dart-concurrency确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
cases.json
references/
isolate-communication-and-worker-pools.md
stream-cancellation-and-debouncing.md

详细介绍

Dart 并发

明确所有权、顺序、取消和错误传播。

先诊断

确定生产者、消费者、生命周期所有者、顺序要求,以及工作变得过时后的预期行为。先复现竞态或泄漏,再引入类似同步机制的处理。

决策规则

  • 一个结果使用 Future,一段时间内的多个结果使用 Stream。
  • 除非明确需要独立执行并处理错误,否则避免启动后不等待的工作。
  • 根据所有者对象的生命周期取消订阅和控制器。
  • 在异步间隙后更新 UI 时,使用适合项目的生命周期机制进行保护。
  • 通过取消、令牌、排序或仅保留最新结果的逻辑,避免过时请求覆盖较新的状态。
  • 对经测量确认的 CPU 密集型工作或隔离需求使用 isolates,而非常规网络 I/O。
  • 在 isolate 边界间传递可转移的值,并将失败传递给调用方。
  • 转换错误时保留堆栈跟踪。

不要把异步所有权藏在全局辅助函数中。将重试和超时策略放在了解幂等性和用户意图的边界处。

验证

测试成功、失败、取消/释放以及乱序完成的情况。运行静态分析;如果时序是问题的关键,则添加有针对性的压力测试或虚拟时间测试。

参考资料

  • 处理繁重的 CPU 计算、端口消息传递或后台工作线程时,请阅读isolate 通信和工作池。
  • 管理订阅生命周期、竞态条件、防抖/节流或仅保留最新结果语义时,请阅读流取消和防抖。

来源

评论

支持 Markdown