本文基于 Dart 2.17
Dart App 中所有的代码都在一个 isolate 中运行(各个 isolate 之间的代码运行时是隔离的),一个 isolate 有自己的 heap,维持有一个消息队列 event_loop,处理两种消息:
event queue
执行用户点击、屏幕刷新、绘制,一般的 Future、IO、Stream 流等,每次执行完毕都会先检查执行 micro task queue 中的任务,直到其为空再执行下一个 event queuemicroTask queue
优先执行,一般执行跑完即弃的小任务,如 Dart 内部的微任务
原创...大约 19 分钟