美文网首页flutter
Future 执行优先级问题

Future 执行优先级问题

作者: 卢融霜 | 来源:发表于2022-03-02 17:23 被阅读0次

代码如下:

void main(List<String> arguments) {
  print('start');

  var future = Future(() {
    print('future默认');
  });
  future.then((value) => print('future默认执行完成'));

  var future1 = Future.value(11);
  future1.then((value) => print('value执行完成'));

  Future.microtask(() => print('microtask执行完成'));

  print('end');
}

运行结果:

start
end
value执行完成
microtask执行完成
future默认
future默认执行完成

解释:

Dart 里面分两种队列 :
事件队列(event queue);
微任务队列(microtask queue);
微任务队列的优先级最高,高于事件队列,只要队列中还有任务,就可以一直霸占着事件循环。

   开始
    |
检查微任务队列,有任务执行,执行完成后回到开始步骤;
没任务,向下执行
    |
检查事件队列,有任务执行,执行完成后回到开始步骤;
    |
   结束

相关文章

  • Future 执行优先级问题

    代码如下: 运行结果: 解释: Dart 里面分两种队列 :事件队列(event queue);微任务队列(mic...

  • Java Debug心得

    案发现场: future task提交到线程池执行; future中task未执行完毕; future内task有...

  • Future设计模式

    1、Future前言 Future设计模式从本质上是用来解决的根本的问题在于可以让一个任务在异步执行,而任务执行完...

  • Flutter--Future原理

    Flutter--Future 什么是Future? 简单来说future就是一个Future对象,当执行r...

  • Flutter--Future原理

    Flutter--Future 什么是Future? 简单来说future就是一个Future对象,当执行r...

  • Dart中的Future的用法

    Future 的常用函数 Future.then() 任务执行完成会进入这里,能够获得返回的执行结果。 Futur...

  • 并发十七:Future详解

    Future Future是J.U.C中的一个接口,它代表着一个异步执行结果。 Future可以看成线程在执行时留...

  • JAVA线程Thread

    一、线程 1、线程优先级 线程执行有优先级,优先级越高先执行机会越大(并不是一定先执行)。 优先级用int的pri...

  • Scala Future

    Future scala.concurrent.Future 异步执行代码块import java.time._i...

  • Future和Promise的分析

    Future java的future Future用来异步来获取结果如get()方法,当执行完成时,返回结果;当没...

网友评论

    本文标题:Future 执行优先级问题

    本文链接:https://www.haomeiwen.com/subject/kzcerrtx.html