javascript - Javascript 中的并行处理模拟

标签 javascript multithreading parallel-processing multiprocessing

我是 JavaScript 新手,请原谅我是个菜鸟。

当需要大量计算时,很可能涉及递归或其他循环。有时这可能意味着有一个运行四个函数的递归循环,并且可能每个函数都会遍历整个 DOM 树,读取位置并进行一些数学运算以进行碰撞检测或其他操作。

当第一个函数正在遍历 DOM 树时,下一个函数必须等待第一个函数完成,依此类推。与其这样做,为什么不在程序外部单独启动这些循环中的循环,并在另一个运行较慢的循环中执行它们的计算,因为它本身不执行这些计算?

弱智还是聪明?

提前致谢!

最佳答案

长期计算正是Web Workers是给。您所描述的是生产者和/或消费者线程的常见模式。虽然您可以使用 Web Workers 来完成此操作,但即使在高度并行的系统上,同步开销也可能会超过任何 yield 。

JavaScript 并不是计算要求较高的应用程序的理想语言。此外,网络浏览器机器的处理能力可能差异很大(想想低端智能手机与 16 核工作站)。因此,请考虑在服务器上计算复杂的内容并将结果发送到客户端进行显示。

对于您的日常 Web 应用程序,您应该采用单线程方法,并在出现问题时分析性能。哎呀,为什么不在这里寻求有关性能问题的帮助呢?

关于javascript - Javascript 中的并行处理模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907593/

相关文章:

javascript - Ajax json正确显示数据

javascript - 找不到语法错误,帮我看看

javascript - 使用 <form> 和 &lt;input&gt; 元素作为 JavaScript 代码的输入。这是最好的方法吗?

c++ - 继续获取 "error LNK1104: cannot open file ' boost_thread-vc100-mt-gd-1_41.lib"

c - 嵌入式系统中的AT命令

java - 在java中搜索列表中对象的最快方法

python - PyTorch DataLoader 对并行运行的批处理使用相同的随机种子

javascript - 在另一个函数中使用一个函数的变量——我想我遗漏了什么

ruby - 学习Ruby线程-线程完成时触发事件

c - 多线程对速度没有改进 - 在 C 中使用 pthread - 为什么?