flutter-handling-concurrency
Originally fromflutter/skills
Installation
SKILL.md
Managing Dart Concurrency and Isolates
Contents
Core Concepts
Dart utilizes a single-threaded execution model driven by an Event Loop (comparable to the iOS main loop). By default, all Flutter application code runs on the Main Isolate.
- Asynchronous Operations (
async/await): Use for non-blocking I/O tasks (network requests, file access). The Event Loop continues processing other events while waiting for theFutureto complete. - Isolates: Dart's implementation of lightweight threads. Isolates possess their own isolated memory and do not share state. They communicate exclusively via message passing.
- Main Isolate: The default thread where UI rendering and event handling occur. Blocking this isolate causes UI freezing (jank).
- Worker Isolate: A spawned isolate used to offload CPU-bound tasks (e.g., decoding large JSON blobs) to prevent Main Isolate blockage.