Dart 通过 async-await、isolate 以及一些异步类型概念(例如 Future
和 Stream
)支持了并发代码编程。本篇文章会对 async-await、Future
和 Stream
进行简略的介绍,而侧重点放在 isolate 的讲解上。
在应用中,所有的 Dart 代码都在 isolate 中运行。每一个 Dart 的 isolate 都有独立的运行线程,它们无法与其他 isolate 共享可变对象。在需要进行通信的场景里,isolate 会使用消息机制。很多 Dart 应用都只使用一个 isolate,也就是 main isolate。你可以创建额外的 isolate 以便在多个处理器核心上执行并行代码。