为了账号安全,请及时绑定邮箱和手机立即绑定

为什么大多数UI框架都是单线程的?

为什么大多数UI框架都是单线程的?

FFIVE 2019-11-12 15:00:11
例如,Java Swing和Android UI都使用单线程模型,其中一个UI线程负责更新所有UI。是什么使框架设计人员选择一种线程模型而不是另一种线程模型?多线程UI模型是否会以更高的复杂性为代价来给您带来更高的性能?我意识到后者很重要,因为与线程相关的错误令人讨厌,但是我想知道单线程模型是否除了简单性之外还有其他优势?
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

是什么使框架设计人员选择一种线程模型而不是另一种线程模型?


从马口中:


AWT最初是作为普通的多线程Java库公开的。但是,当Java团队审视AWT以及人们遇到的僵局和竞赛时,我们开始意识到我们正在做出我们无法兑现的承诺。


这项分析最终达到了1997年对Swing的设计审查之一,当时我们回顾了AWT的运行状况以及整个行业的经验,我们接受了Swing团队的建议,即Swing仅应支持非常有限的多线程。


(阅读整篇文章,它详细解释了该决定,并指出,在Xerox PARC甚至早些时候就发生了完全相同的问题,并最终转移到了单线程模型上-在这里,我们认为CS的所有前沿技术都是30年前发明)


多线程UI模型是否会以更高的复杂性为代价来给您带来更高的性能?


绝对不是,因为绘制GUI和处理用户操作(这是UI线程需要做的一切)不会成为任何理智的2D应用程序的瓶颈。


查看完整回答
反对 回复 2019-11-12
  • 3 回答
  • 0 关注
  • 555 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信