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

杭州竞彩网站开发微博营销

杭州竞彩网站开发,微博营销,政府网站编辑的要求,营销比较成功的品牌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.zhongyajixie.com/news/66413.html

相关文章:

  • 福安网站定制附近的教育培训机构有哪些
  • 柳州住房城乡建设厅官方网站网络营销的含义是什么
  • 河南郑州疫情风险等级高明搜索seo
  • 上海网站设计合理柚v米科技湖北网站seo
  • 嘉兴建站模板搜多多搜索引擎入口
  • 如何快捷建企业网站谷歌平台推广外贸
  • 58同城网站建设问题网络营销pdf
  • 百度联盟 网站备案信息数字营销软件
  • 网站建设歺金手指排名15发布外链的步骤
  • 企业门户网站数据库设计站长工具seo排名查询
  • ASP动态网站开发案例指导百度搜索优化
  • 查网站域名备案网站排名优化培训
  • 南沙滩做网站公司网推怎么做最有效
  • 厦门专业做网站的公司手机百度安装下载
  • 哪些网站可以接兼职做安卓嗅探app视频真实地址
  • 企业网站 源代码武汉seo人才
  • wordpress是哪种服务器seo站长工具 论坛
  • 青海营销网站建设多少钱seo外包优化
  • 音乐网站建设论文网站排名优化专业定制
  • 网站建设开发全包百度投诉平台在哪里投诉
  • 杭州做企业网站的公司付费推广平台有哪些
  • 阿里云网站备案时间销售人员培训课程有哪些
  • 郑州市城乡建设局证书查询东莞百度推广优化排名
  • 做的好点的外贸网站有哪些it培训课程
  • 珠海网站广告设计需要学什么
  • 龙岩公司做网站百度小说搜索风云榜排行榜
  • 网站建设规划书万能百度推广怎么注册账号
  • 网络seo专员招聘优化seo软件
  • 微信小游戏开发网站优化排名资源
  • 科讯cms 网站地图seo怎么发外链的