当前位置: 首页 > article >正文

Flutter:异步多线程结合

示例一

main() => isoLoadguncmo();

void isoLoadguncmo() {
  Future(() {
    print('1来了');
    return compute(func, 123);
  }).then((value) => print('1结束'));
  Future(() {
    print('2来了');
    return compute(func, 123);
  }).then((value) => print('2结束'));
  Future(() {
    print('3来了');
    return compute(func, 123);
  }).then((value) => print('3结束'));
  Future(() {
    print('4来了');
    return compute(func, 123);
  }).then((value) => print('4结束'));
  Future(() {
    print('5来了');
    return compute(func, 123);
  }).then((value) => print('5结束'));
}

func(int message) {}

在这里插入图片描述
主线程中的异步Future,会按顺序执行1-5,
Future内的子线程compute则是无序的执行。

如果将return compute(func, 123);代码中的return去除,则会打印
在这里插入图片描述
因为

Future(() {
  print('1来了');
  compute(func, 123);
}).then((value) => print('1结束'));
可以看做是一个整体

示例二

main(){
  Future x = Future((){
    print('异步任务1');
    scheduleMicrotask((){
      print('微任务1');
    });
  });
  x.then((value){
    print('异步任务1:返回结果');
  });
}

在这里插入图片描述
异步任务1x.then 是一个整体,所以先执行,后执行微任务1

示例三

main(){
  Future x = Future((){
    print('异步任务1');
  });
  x.then((value){
    print('异步任务1:返回结果');
  });
  scheduleMicrotask((){
    print('微任务1');
  });
}

如果是同级的情况下,微任务>事件队列,微任务先执行,后执行事件队列中的异步
在这里插入图片描述

示例四,将耗时操作放入子线程compute,防止主线程卡UI

return GestureDetector(
	 onTap: () {
	 	compute(func, 123);
	 },
)
func(){
	for(int i = 0;i<10000000;i++){}
}

http://www.kler.cn/a/397083.html

相关文章:

  • linux企业中常用NFS、ftp服务
  • 高级计算机算法的8道题(贪心、动态规划)
  • 计算机网络 (3)计算机网络的性能
  • 大模型基础BERT——Transformers的双向编码器表示
  • Fish Agent V0.13B:Fish Audio的语音处理新突破,AI语音助手的未来已来!
  • 机器学习 ---线性回归
  • 15分钟学 Go 第 57 天 :持续集成与持续部署
  • np.zeros_like奇怪的bug
  • web——sqliabs靶场——第六关——报错注入和布尔盲注
  • AntFlow:一款高效灵活的开源工作流引擎
  • Nginx 上安装 SSL 证书并启用 HTTPS 访问
  • 踏入 C++ 的深邃世界:实现 unordered_set 与 unordered_map 的优雅之旅
  • 问题大集-01-kafka问题
  • 【C语言】前端虚拟DOM
  • 软考教材重点内容 信息安全工程师 第 4 章 网络安全体系与网络安全模型
  • 超全超详细使用SAM进行高效图像分割标注(GPU加速推理)
  • golang中的init函数
  • 1 图的搜索 奇偶剪枝
  • 解锁 AI 力量:为直播未来注入磅礴能量,开启新时代篇章
  • SpringCloud篇(服务拆分 / 远程调用 - 入门案例)
  • 鸿蒙自定义UI组件导出使用
  • EXCEL 或 WPS 列下划线转驼峰
  • Dubbo RPC线程模型
  • ADS项目笔记 1. 低噪声放大器LNA天线一体化设计
  • 基于Python爬虫大屏可视化的热门旅游景点数据分析系统
  • 高斯混合模型回归(Gaussian Mixture Model Regression,GMM回归)