- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
了解 Flutter 的 Thread
Model (线程模型)
Flutter Architecture overview
从图中可以看出 Flutter 有3部分组成:
1. Framework(Dart) :我们在写 Flutter 应⽤中,直接接触的
2. Engine(C/C++) :引擎层,提供核⼼ 术,例如
Skia :2D图形渲染库
Dart :⼀个⽤于垃圾收集的⾯向对象语⾔的 VM,DartVM
有⾃⼰的线程池
s ell:不同的平台有不同的 s ell,例如有 Android和
iOS 的 s ell
3. Embedder(Platform Specific) :嵌⼊层,为 Engine 创建和管
理线程,作⽤是把 Engine 的 task runners (任务运⾏器)
运⾏在嵌⼊层管理的线程上。
实现 Isolate 的线程由 Flutter 创建和管理,除了实现 Isolate 的线
程,Flutter 还有其余的线程,本篇⽂章探讨 Flutte 的 t reading
model (线程模型)。
创建和管理线程
在 Flutter Engine 中定义了四种 Task Runners (任务运⾏器),
Task Runners 是需要运⾏在平台提供的线程上的, 所以 Flutter
Engine 是不创建和管理线程的,是由 Embedder 为 Flutter
Engine 创建和管理线程 (包括线程⾥的消息循环),这四种 Task
Runners 分别是:
Platform Task Runner
UI Task Runner
GPU Task Runner
IO Task Runner
理解这四种 Task Runner ,可以让我们知道我们写的代码是运⾏在
哪个线程上,从⽽知道可以做什么,不可以做什么。
Platform Task Runner
所在的线程
Platform Task Runner 运⾏所在的线程叫 Platform T read,
Platform T read 必须要运⾏在平台的主线程上。
Android iOS
主线程 主线程
功能
处理平台 (Android/iOS)的消息
QA
为什么⼀定要是平台的主线程?
因为 Platform Task Runner 的功能是要处理平台的消息,但
是平台的 API 都是只能在主线程调⽤,所以 Platform Task
Runner 运⾏所在的平台的线程必须是主线程
⼀个 Flutter Engine 有⼀个还是多个 Platform T read?
⼀个 Flutter Engine 对应⼀个 Platform T read (⼀个
Flutter 应⽤启动的时候会创建⼀个 Engine 实例,Engine
创建的时候会创建⼀个 Platform T read 供 Platform Task
Runner 使⽤)
如果阻塞 Platform T read 会有什么后果?
阻塞 Platform T read 不会直接导致 Flutter 应⽤的卡顿 (跟
iOS 、Android 主线程不同)。尽管如此,也不建议在这个
Runner 执⾏繁重的操作,⻓时间卡住 Platform T read 应⽤
有可能会被系统 Watc dog 强杀。
UI Task Runner
所在的线程
UI Task Runner 运⾏所在的线程叫 UI T read,UI T read 对必须
运⾏在平台的哪个线程没有特别要求,但在 A
您可能关注的文档
- BRC_高盛面试指南.pdf
- 3搭建 Flutter 开发环境.pdf
- 按键检测例程说明文档.pdf
- 01-为什么要学习算法与数据结构.pdf
- BRC_中信建投校园招聘面试经验1.pdf
- BRC_中信建投校园招聘面试经验3.pdf
- 宠物版特别功能使用说明.pdf
- UART动作例程说明文档.pdf
- ADC动作例程说明文档.pdf
- 03-课程总览&算法复杂度.pdf
- 2026秋季中国工商银行集约运营中心(佛山)校园招聘20人备考题库含答案详解(培优).docx
- 中国农业银行宁波市分行2026年度校园招聘214人备考题库附答案详解(夺分金卷).docx
- “梦工场”招商银行长沙分行2026寒假实习生招聘备考题库附答案详解(轻巧夺冠).docx
- 2026贵州省公共资源交易中心定向部分高校选调优秀毕业生专业技术职位考试备考题库完整参考答案详解.docx
- 中国建设银行建信金融资产投资有限公司2026年度校园招聘8人备考题库含答案详解(a卷).docx
- 中国农业银行宁夏回族自治区分行2026年度校园招聘146人备考题库及一套参考答案详解.docx
- 门头沟区青少年事务社工招聘1人备考题库附答案详解(模拟题).docx
- 中国建设银行运营数据中心2026年度校园招聘20人备考题库含答案详解ab卷.docx
- 中国建设银行建银工程咨询有限责任公司2026年度校园招聘9人备考题库及答案详解(有一套).docx
- 2026秋季中国工商银行重庆市分行校园招聘270人备考题库含答案详解(完整版).docx
最近下载
- 电力电子技术 第6版 第8章软开关技术.pdf VIP
- 电工电子技术课件 第八章 集成运算放大器及其应用.pptx VIP
- 2025至2030烟草行业发展趋势分析与未来投资战略咨询研究报告.docx
- 内蒙古自治区包头市青山区2023-2024学年九年级上学期1月期末物理试题.docx VIP
- 子宫病理取材.pptx VIP
- 包钢竞聘考试题目及答案.docx VIP
- 2023年高等教育法学类自考-00229证据法学考试历年真题荟萃版附带答案.docx VIP
- 海外合规.doc VIP
- 《Zbrush雕刻》课件——第一章_ZBrush软件介绍与就业市场.pptx VIP
- 国防军事课件——平型关大捷.ppt VIP
原创力文档


文档评论(0)