如果多线程的话JavaScript会更好吗?

时间:2010-08-15 17:37:54

标签: javascript multithreading language-features language-design

这是Is there a point to multithreading的后续问题?

如果JavaScript是多线程的,它会比现有系统更好吗?具有一个UI线程的多线程和不同线程(后台)中的其他任务会带来更高的响应能力和资源的有效使用吗?

为什么语言的设计者决定坚持使用单线程模型,尽管没有CPU /机器的进步以及需要同时从不同的机制中提取不同的内容和数据。当多线程可以提供更高的准确度时,为什么他们仍然可以使用JavaScript timers work的方式?

我并不是试图将JavaScript视为效率低下,而是要了解多线程如何带来价值与其引入编程的复杂性相比

3 个答案:

答案 0 :(得分:4)

Brendan Eich(Mozilla的首席技术官)谈到了这将在“Threads suck”中产生的复杂性。

他的结论: “所以我对我在去年五月的Ajax体验中得到的问题的默认答案,”你什么时候会在JavaScript中添加线程?“是:”在你的尸体上!“

Using web workers是替代方案。

答案 1 :(得分:2)

  

如果JavaScript是多线程的,   它会比现有的更好吗?   系统

当您说“现有系统”时,您究竟指的是什么?您浏览器中嵌入了现有的Javascript?或者是独立的Javascript实现?

  

我不是想要确定JavaScript   效率低下

语言本身并不高效或低效,它的实现是。 : - )

  

使用一个UI进行多线程处理   线程和其他任务不同   线程(背景)带来更多   响应能力和有效使用   资源?

Rhino,Java上的JVM上的Javascript可以访问和使用线程以及任何其他Java库,所以是的,您可以使用Javascript编写整个Swing应用程序的脚本,它可以像Java中的任何其他Swing应用程序一样工作。 / p>

无论如何,与其引入的复杂性相比,多线程如何带来价值的问题并非特定于任何语言本身。有一些语言可以提供运行时提供的多线程功能的相当好的包装,所以不要。考虑到我们的多核处理器为我们日常使用的台式机供电,多线程很难但现在更加重要。 : - )

答案 2 :(得分:0)

多线程不会对JavaScript产生影响,即使现在使用WebWorkers,我们对大多数JS应用程序也不需要太多。只是现在JS正在移动服务器端,编写更大的应用程序,这些应用程序对WebWorkers来说很有用,而webworkers比多线程更好更容易。

除了webworkers,JS之外,服务器端JS特别倾向于异步处理,进一步减少了对线性处理的需求。

在过去甚至直到今天,大多数用JS编写的客户端应用程序根本不需要多线程,因为随着硬件加速也提高了HTML / CSS渲染,JS引擎也越来越好。

还有另外一件好事,使用JS(服务器到客户端)我们可以轻松地将大量处理移动到客户端,基本上可以获得庞大的计算机网络来完成所有计算而无需客户端安装花哨程序(只需浏览器)。