目录
-
Dart单线程语言
Dart 是单线程执行模型,但是它支持 Isolate
(一种让 Dart 代码运行在其他线程的方式)、事件循环和异步编程。除非你自己创建一个 Isolate
,否则你的 Dart 代码永远运行在 UI 线程,并由 event loop 驱动。Flutter 的 event loop 和 iOS 中的 main loop 相似——Looper
是附加在主线程上的。
-
event loop工作原理
event loop循环机制是和event queue 、 microtask queue 这两个队列一起工作的。工作流程可以形象为上飞机排2个队的过程。microtask queue为VIP队列,event queue 为普通队列。VIP队列先上飞机,队列里面都上完了,再上普通队列,当普通队列上完一个人了,再去看看VIP队列否有人,如果有,VIP先上。如此往复循环。最后如果普通队列没人了,就可以关飞机门(exit)了。
-
<