美文网首页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 执行优先级问题

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