flutter - Future,microtask事件队列顺序

题目?

flutter - Future,microtask事件队列顺序

dart线程优先级

dart 中的代码执行优先级可以分为三个级别:

  1. 在 Main 中写代码将最先执行;
  2. 执行完 Main 中的代码,然后会检查并执行 Microtask Queue 中的任务,
    通常使用 scheduleMicrotask 将事件添加到 MicroTask Queue 中;
  3. 最后执行 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 不会执行。

答案

flutter - Future,microtask事件队列顺序