首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么主线程是UI线程?

为什么主线程是UI线程?
EN

Stack Overflow用户
提问于 2017-12-03 23:31:09
回答 5查看 86关注 0票数 0

Android选择主线程作为UI线程有什么原因吗?

在单个非线程或线程池上完成所有计算,然后仅当您想要绘制某些内容,然后将其传递给UI处理程序,这不是更容易吗?

有人可能会说,你仍然可以将所有工作卸载到后台线程,然后发布到UI -但这更多的是心态问题。如果默认情况下它是非UI线程,那么开发人员会更加小心在UI线程上发布什么,以及不在UI线程上发布什么。

我不是在这里争论它是否是一个有效的选择--我更感兴趣的是,为什么默认情况下将主线程设置为UI线程的原因?

EN

回答 5

Stack Overflow用户

发布于 2017-12-03 23:43:53

将主线程默认设置为UI线程的原因可能是什么?

现在,在我写这篇文章的时候,已经是2017年12月了。

Android的架构,就线程模型而言,是在2005-2007年的某个时候创建的。哦,它是十多年前创建的。

那时候:

适用于移动设备的

  • 应用程序非常典型unsophisticated
  • Mobile设备CPU是单核的,该核心的运行速度仅为当今核心速度的极小一部分(例如,33 AOT、66 AOT、133 AOT)
    • Dalvik被纯粹解释为(无即时、无加速)

拥有“一个神奇线程”的方法是一种典型的嵌入式系统解决方案,当您在缓慢的环境中运行时,线程同步的开销太大(解释型语言加剧了这种开销)。考虑到我们没有试图在应用程序中做太多事情的事实,这是一个合理的选择。创建多个线程,在它们之间传递控制等等,增加了相当多的开销,这在当时是负担不起的。

the Star Trek mirror universe,2005年的CPU速度与今天相当,镜像宇宙Android团队可能做出了不同的决定,可能包括更灵活的UI工作线程。另外,队里的所有人都留着山羊胡子。

票数 2
EN

Stack Overflow用户

发布于 2017-12-03 23:34:30

这可能是为了让更多的人开发应用程序。如果你只是从编程开始,你需要做的第一件事就是创建一个新的UI类,我想你已经害怕这个困难了。

票数 0
EN

Stack Overflow用户

发布于 2017-12-03 23:43:39

这是一个同步的问题,用户的操作和图形界面中显示的结果必须遵循严格的顺序,显然在单个UI线程中更容易做到这一点

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

https://stackoverflow.com/questions/47619937

复制
相关文章

相似问题

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