JavaScript/NodeJS真的是并行的吗?
最近在学校,我在一堂并行计算课上学习了C++/OpenMPI。我不喜欢C++编程,因为它的低水平,程序难,容易出错等。 所以我一直在想,JavaScript/NodeJS(我开始喜欢的东西)真的是并行的吗?或者只是使用非阻塞操作来模拟并行执行(我认为是这样的)?有这样的库,它提供了类似于我在OpenMPI中使用的函数:聚集、分散甚至“并行”。但我有一种感觉,它只是使用非阻塞IO模拟并行性 也许只有真正的平行JavaScript/NodeJS真的是并行的吗?,javascript,node.js,parallel-processing,Javascript,Node.js,Parallel Processing,最近在学校,我在一堂并行计算课上学习了C++/OpenMPI。我不喜欢C++编程,因为它的低水平,程序难,容易出错等。 所以我一直在想,JavaScript/NodeJS(我开始喜欢的东西)真的是并行的吗?或者只是使用非阻塞操作来模拟并行执行(我认为是这样的)?有这样的库,它提供了类似于我在OpenMPI中使用的函数:聚集、分散甚至“并行”。但我有一种感觉,它只是使用非阻塞IO模拟并行性 也许只有真正的平行 更新:似乎可以通过web workers(~31分钟):通过Node.js观看,Java
更新:似乎可以通过web workers(~31分钟):通过Node.js观看,JavaScript在单个线程中运行。IO是非阻塞的。使用Node.js,JavaScript在单个线程中运行。IO是非阻塞的。事实上,JavaScript的设计是单线程的。但你并不是第一个想让它有平行性的人,所以有些东西可以真正平行:
一般来说,JavaScript并不是低级别并行计算的最佳工具。还有很多其他工具更适合于此:Java、C#、Go…事实上,JavaScript的设计是单线程的。但你并不是第一个想让它有平行性的人,所以有些东西可以真正平行:
一般来说,JavaScript并不是低级别并行计算的最佳工具。还有很多其他工具更适合于此:Java、C#、Go…嗯,NodeJS是单线程的,所以它不是真正的并行?意味着它不能从多核中获益?但我想我仍然可以使用分布式系统(比如云)?我想他说的是,在任何意义上都不是并行的。这是正确的。No.js管理引擎下的IO和其他异步操作的一些线程(如果你写一个C++扩展,你可以访问它们),但是为了利用JavaScript代码中的多个内核,你需要运行多个进程,或者使用一个为你创建线程的模块(通过C++)。所以这不是真正的平行?意味着它不能从多核中获益?但我想我仍然可以使用分布式系统(比如云)?我想他说的是,在任何意义上都不是并行的。这是正确的。No.js管理引擎下的IO和其他异步操作的一些线程(如果你写了一个C++扩展,你可以访问它们),但是为了利用JavaScript代码中的多个内核,你需要运行多个进程,或者使用一个为你创建线程的模块(通过C++)。Node.js或Python twisted framework等东西之所以流行,是因为事实证明,对于Web服务器所经历的各种负载(每个客户端有多个连接、小数据包、5秒钟内的响应等),多线程和多处理已经得到了证明(在现实世界中)要比多路复用、非阻塞I/O慢得多。尤其是当线程数超过CPU核数时(这是繁忙网站的典型情况)。从web服务器问题的历史角度来看:Node.js或Python twisted framework等流行的原因可能是重复的,因为事实证明,对于web服务器所经历的各种负载(每个客户端的多个连接、小数据包、不到5秒的响应等)多线程和多处理已被证明(在现实世界中)比多路复用、非阻塞I/O慢得多。特别是当您的线程数超过CPU内核数时(这是繁忙网站的典型情况)。Se