首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Main/UI线程与Android中的系统UI线程相同吗?

Main/UI线程与Android中的系统UI线程相同吗?
EN

Stack Overflow用户
提问于 2022-02-07 13:05:43
回答 1查看 291关注 0票数 2

这个问题与Android中关于主线程和UI线程的讨论不同。

通过系统线程--处理系统UI的线程,如状态条、通知和其他正在进行的系统进程,例如处理主按钮按下、最近菜单等的线程.

通过主线程-App的线程来处理UI (进程启动时分叉)

我相信这是一个特殊的线程,因为繁忙的应用程序主线程不会挂起你的设备,除了应用程序之外,其他东西都能正常工作。

我的怀疑仅仅是出于的目的:如果系统能够为它管理一个单独的线程(以完成UI工作),而不是任何进程/应用程序的主线程;那么为什么应用程序不能有能够处理UI的多个线程(无论它对于devs来说多么复杂!)

请提供参考,同时指出这方面的答案。

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 13:15:01

通过系统线程-处理系统UI的线程,如statusbar,通知和其他正在进行的系统进程,如线程,处理家庭按钮-按下,最近-菜单等。

其中很可能涉及到几个线程。

我相信这是一个特殊的线程,因为繁忙的应用程序主线程不会挂起你的设备,除了应用程序之外,其他东西都能正常工作。

更重要的是,系统UI由独立的OS进程处理,独立于应用程序的OS进程。和大多数现代操作系统一样,在Android中,线程由进程拥有。因此,根据定义,单独的进程有不同的线程。

那么,为什么应用程序不能拥有能够处理UI的多个线程(不管它对于devs来说有多复杂!!)

这是一个架构上的决定,大约15年前,当时手机硬件比现在有限得多。在受约束的环境中,使用单个“魔术线程”是一种常见的做法,因为它避免了不断检查锁和其他方法的开销,以确保数据结构的线程安全。虽然谷歌已经做了一些努力来改进这一点(例如,添加了一个单独的呈现线程),但核心架构限制仍然存在,这是为了向后兼容较旧的应用程序。

还要注意的是,Jetpack的撰写工作相当多,以尝试允许多线程可组合性。基本上,由于我们现在有了更好的硬件,Google正在为我们处理低级别的同步,所以可以在几个线程上运行,而不存在任何问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71019062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档