gpt4 book ai didi

node.js - nodejs 多线程 vs nodejs 单线程

转载 作者:搜寻专家 更新时间:2023-11-01 00:30:44 29 4
gpt4 key购买 nike

我不明白java多线程系统和Nodejs多线程系统在性能和资源共享方面的区别。由于 NodeJS 为您的程序使用事件循环单线程,但在幕后,它将任务分配给不同的线程,如文件读取或数据库查询。所以它使用多线程和线程池(类似于Java?)。但是每当我们比较性能时,NodeJS 应用程序都比其他多线程系统好得多。

NodeJS 实际上是如何处理溢出或线程锁定等多线程编程挑战的。它如何在线程之间共享资源,例如我正在使用两个 I/O 同时访问同一个文件,所以会有两个线程访问一个资源,它适用于 NodeJS 多线程系统吗?还是我误解了这一点?

最佳答案

Nodejs 正在使用 libuv为了这个目的,它写在 C 上。

这就是为什么你不能比较 Java 和 Nodejs,我们可以说,Nodejs 使用低级机制来进行异步 IO。

libuv 专为 nodejs 设计,但它可以在任何项目中使用。

您提到了异步磁盘操作 - 您可以找到关于它的好帖子 here .

简短版:

use asynchronous disk I/O, instead of the synchronous disk calls in the disk thread in 0.16.x versions.

这是什么意思?这意味着您可以使用相同的方法(异步低级 IO 操作),而且我敢打赌您可以使用 Java 等提高相同的速度。

您提到的另一件事 - 事件循环。没什么难的-很容易理解,例如你可以read this好帖子。

关于node.js - nodejs 多线程 vs nodejs 单线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35404648/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com