为什么Flex使用单线程模型?

Kar*_*arl 5 apache-flex performance user-interface multithreading

在过去的几周里,我一直在使用使用blazeDS连接到J2EE后端的Flex前端构建原型应用程序.

原型是一个学习flex的实验,看看它是否适用于需要通过pub子类型模型进行大量动态更新(即每秒> 20秒)的复杂交易应用程序.

在一些轻量级性能测试期间,我很明显需要使用多个线程来确保从服务器接收大量更新时UI保持稳定.一切顺利,直到我发现flex有一个单线程编程模型!

从一个快速的谷歌看起来好像有很多黑客来实现类似线程的行为.

我相信很多人一定遇到过类似的问题.人们可以让我知道:

  • 是否有任何良好的线程库,维护良好等
  • 其他RIA技术(如silverlight)也有同样的问题.
  • abobe为什么要实现单线程模型?
  • 我可以使用任何其他技巧来确保我的UI稳定.

Jam*_*ard 12

我见过非常密集的交易者桌面类型的Flex应用程序,它们在Flex的单线程模型中运行良好.原因是内部Flex应用程序使用异步网络IO.因此,在您发出请求时,UI不会阻止.你可能会遇到BlazeDS的限制,也许应该考虑使用RTMP的东西(比如LCDS).RTMP是一种更有效的协议,用于将大量数据流式传输到客户端.还有一些方法可以优化客户端事件处理和呈现代码,这样就不会让UI陷入困境.Christophe Coenraets在做这类事情时有一些很好的演示:http://coenraets.org/blog/?s = trader+desktop

你想要做的事情当然可以通过Flex实现,而且有些人已经成功地完成了它.

但是在bugs.adobe.com上有一个开放功能请求:https://bugs.adobe.com/jira/browse/ASL-23