我不理解java多线程系统和Nodejs多线程系统在性能和资源共享方面的区别。由于NodeJS为您的程序使用事件循环单线程,但在场景后面,它将任务分配给不同的线程,如文件读取或db查询。因此,它使用多线程和线程池(类似于Java?)。但是,当我们比较性能时,NodeJS应用程序比其他多线程系统要好得多。
NodeJS实际上是如何处理多线程编程挑战的,比如溢出或锁定线程。它如何在线程之间共享资源--例如,我同时使用两个I/O访问同一个文件--因此将有两个线程访问一个资源,它是否适用于NodeJS多线程系统?还是我误解了这一点?
发布于 2016-04-11 09:09:42
Nodejs正为此目的使用利布夫,这是在C上编写的。
这就是为什么您不能比较Java和Nodejs,我们可以说,Nodejs使用的是低级别机制来生成异步IO。
为nodejs设计的libuv,但它可以用于任何项目。
您提到了异步磁盘操作--您可以找到关于它的很好的帖子,这里。
简短版本:
使用异步磁盘I/O,而不是0.16.x版本的磁盘线程中的同步磁盘调用。
这意味着什么?这意味着您可以使用相同的方法(异步低级别IO操作),我敢打赌,您可以使用Java来提高同样的速度。
你提到的另一件事-事件循环。没有什么难的--这是很容易理解的,例如你可以朗读 这的好帖子。
发布于 2017-12-10 13:49:10
这是我的2便士价值..。
多线程能力
https://stackoverflow.com/questions/35404648
复制相似问题