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

杭州竞彩网站开发郑州官网网站推广优化

杭州竞彩网站开发,郑州官网网站推广优化,深圳ww,我们常见的网站有哪些方面Flutter 作为一个跨平台的UI库,前面的Flutter 架构有涉及到,Flutter 架构中的运行的多个线程。那么最为一个Flutter开发者,我们如何创建线程呢 多线程 上述我们提及到了,架构层涉及的多线程问题。比如说 主线程, 平台线程&#x…

Flutter 作为一个跨平台的UI库,前面的Flutter 架构有涉及到,Flutter 架构中的运行的多个线程。那么最为一个Flutter开发者,我们如何创建线程呢

多线程

上述我们提及到了,架构层涉及的多线程问题。比如说 主线程, 平台线程GPU线程。本文讨论的及主线程,dart 运行在虚拟中的多线程问题。OK,言归正传。

线程模型

作为一个iOSer,我们在移动端开发的时候,会有多线程的应用场景。关于iOS中多线程我们会遇到线程同步的问题。比如说资源竞争,数据同步我们会引用到, 关于自旋互斥的面试问题也是考察比较多的。呢么flutter 的线程模型是啥呢。这里我们引入isolate

Isolate

flutter的线程是一个独立的Isolate, 每个Isolate 管理其属于自己的EventLoop (此处的设计思路和iOS中线程与RunLoop的关系是一样的)和JS的事件循环蕾丝,关于EventLoop事件循环后续会出文章解释,此处不提及。需要注意的是async 在没有创建新的Isolate时,还是会将事件推入主Isolate 的任务队列当中的。

Talk is cheap

言归正传,了解了flutter 中的线程模型。那我们如何创建新的Isolate。举个🌰,我们需要从文件中读取配置。在处理I/O费时操作的时候,我们一般会创建一个新的Isolate

dart Isolate 🌰
import 'dart:convert';
import 'dart:io';
import 'dart:isolate';void main(List<String> args) async {print("${Isolate.current.debugName}");final jsonData = await Isolate.run(_readAndParseJson);
}Future<Map<String, dynamic>> _readAndParseJson() async {final configuration = await File("configuration.json").readAsString();final jsonData = jsonDecode(configuration) as Map<String, dynamic>;print("${Isolate.current.debugName}");return jsonData;
}

输出结果如下

main
_RemoteRunner._remoteExecuteExited.
flutter🌰
import 'dart:convert';
import 'dart:io';
import 'dart:isolate';import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';void main() {runApp(const MainApp());
}class MainApp extends StatefulWidget {const MainApp({super.key});State<MainApp> createState() => _MainAppState();
}class _MainAppState extends State<MainApp> {String content = "内容占位符";void _updateContent() async {// Map<String, dynamic> configuration = await _readAndParseJson();print("${Isolate.current.debugName}");Map<String, dynamic> configuration = await _readAndParseJson();final name = configuration["name"];setState(() {content = name;});}Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: const Text("jeverson's eg"),),body: Center(child: Text(content,style: const TextStyle(color: Colors.black),)),floatingActionButton: FloatingActionButton(onPressed: _updateContent,child: const Icon(Icons.update),),),);}
}Future<Map<String, dynamic>> _readAndParseJson() async {final configuration = await rootBundle.loadString("lib/configuration.json");return compute((message) {print("${Isolate.current.debugName}");return jsonDecode(configuration) as Map<String, dynamic>;}, configuration);
}

ByTheWay

演示代码中我们使用的是dart,使用的是run, 在flutter 中我们使用compute 函数。

TODOIsolate间通信

http://www.yidumall.com/news/31843.html

相关文章:

  • 百度推广方式seo关键词首页排名
  • 南京大型门户网站建设百度关键词怎么做排名
  • 网站如何绑定二级域名百度引擎提交入口
  • 德州北京网站建设百度关键词价格计算
  • 天坛整装电话天津seo排名效果好
  • 为某网站做一则广告语软文营销写作技巧有哪些?
  • 建设工程协会网站查询网站怎么优化排名的方法
  • wordpress仿站教程廊坊首页霸屏排名优化
  • 专门做物理的网站360网站收录提交
  • 设计素材网站线上北京seo怎么优化
  • 重庆营销网站建设公司怎么推广自己的网站
  • s9视频直播外贸seo网站
  • 安徽省建设工程质量协会网站成都网络运营推广
  • 网站开发难吗2008广告公司品牌营销推广
  • 做设计那些网站可以卖设计百度快照推广有效果吗
  • 建筑工程信息平台湖北seo诊断
  • 专门做岛屿的网站百度开户怎么开
  • 大连制作网站报价seo合作代理
  • 网站注册建设站外引流推广渠道
  • 网站设计类论文怎么做百度一下官方网页
  • 网站设计报价方案怎样提高百度推广排名
  • 西安建站套餐网上竞价平台
  • 阿里巴巴官方网站网页分析报告案例
  • 教育门户网站建站互联网营销成功案例
  • 做平面那个网站素材好网站查询地址
  • 自己电脑如何做网站服务器怎么制作网站教程步骤
  • 做日语网站 adsense百度top风云榜
  • 企业网站策划大纲模板正规网站优化哪个公司好
  • 编程和做网站有关系吗seo优化网站源码
  • 修改wordpress函数快速网站seo效果