Android选择主线程作为UI线程有什么原因吗?
在单个非线程或线程池上完成所有计算,然后仅当您想要绘制某些内容,然后将其传递给UI处理程序,这不是更容易吗?
有人可能会说,你仍然可以将所有工作卸载到后台线程,然后发布到UI -但这更多的是心态问题。如果默认情况下它是非UI线程,那么开发人员会更加小心在UI线程上发布什么,以及不在UI线程上发布什么。
我不是在这里争论它是否是一个有效的选择--我更感兴趣的是,为什么默认情况下将主线程设置为UI线程的原因?
发布于 2017-12-03 23:43:53
将主线程默认设置为UI线程的原因可能是什么?
现在,在我写这篇文章的时候,已经是2017年12月了。
Android的架构,就线程模型而言,是在2005-2007年的某个时候创建的。哦,它是十多年前创建的。
那时候:
适用于移动设备的
拥有“一个神奇线程”的方法是一种典型的嵌入式系统解决方案,当您在缓慢的环境中运行时,线程同步的开销太大(解释型语言加剧了这种开销)。考虑到我们没有试图在应用程序中做太多事情的事实,这是一个合理的选择。创建多个线程,在它们之间传递控制等等,增加了相当多的开销,这在当时是负担不起的。
在the Star Trek mirror universe,2005年的CPU速度与今天相当,镜像宇宙Android团队可能做出了不同的决定,可能包括更灵活的UI工作线程。另外,队里的所有人都留着山羊胡子。
发布于 2017-12-03 23:34:30
这可能是为了让更多的人开发应用程序。如果你只是从编程开始,你需要做的第一件事就是创建一个新的UI类,我想你已经害怕这个困难了。
发布于 2017-12-03 23:43:39
这是一个同步的问题,用户的操作和图形界面中显示的结果必须遵循严格的顺序,显然在单个UI线程中更容易做到这一点
https://stackoverflow.com/questions/47619937
复制相似问题