flutter - Future,microtask事件队列顺序
题目?
dart线程优先级
dart 中的代码执行优先级可以分为三个级别:
- 在 Main 中写代码将最先执行;
- 执行完 Main 中的代码,然后会检查并执行 Microtask Queue 中的任务,
通常使用 scheduleMicrotask 将事件添加到 MicroTask Queue 中; - 最后执行 EventQueue 队列中的代码,通常使用 Future 向 EventQueue加入时间,也可以使用 async 和 await 向 EventQueue 加入事件。
总结:Dart 中事件的执行顺序:Main > MicroTask > EventQueue。
dart中执行异步操作
dart中执行异步操作通过Future,多个 Future 的执行顺序.
- 规则一:Future 的执行顺序为Future的在 EventQueue 的排列顺序,先进先执行。
- 规则二:当任务需要延迟执行时,可以使用 new Future.delay() 来将任务延迟执行。
- 规则三: Future 如果执行完才添加 than ,该任务会被放入 microTask,当前 Future 执行完会执行 microTask,microTask 为空后才会执行下一个Future。
- 规则四:Future 是链式调用,意味着Future 的 then 未执行完,下一个then 不会执行。