首页 新闻 会员 周边 捐助

为什么Nodejs的性能很高?

0
悬赏园豆:10 [待解决问题]

在网上看到很多人都说Nodejs性能非常棒,

但又说它是单线程的,而且还支持异步操作...

 

我看了有几个不明白的地方:

1,单线程中是如何进行异步的?只有一个线程,代码都顺序执行,如何异步呢?即使使用回调机制,比如文件读取完之后回调某方法,那么在读取中,由于只有一个线程,也不可能并行执行其他代码啊.

 

2,既然是单线程,那么在上一个用户访问结束前,新用户访问的代码是得不到执行的,这样一来效率应该非常低啊,为何还说性能很好?

 

3,就着第一个问题,想问一下在使用jquery中ajax请求的过程中,如果不将请求设置为同步的,请求之后的那部分代码会被执行,如果说js是单线程,那么是如何做到这种并行执行的?

 

谢谢各大神的耐心解答.

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2019-04-29 10:32
< >
分享
所有回答(3)
1

因为 JS 有事件循环这种东西: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop

太长不看版:

JS 提供了一些方式(setTimeout, ajax...),可以把一些操作放到一个 todo list 里面。然后 js 的单线程就不断的从 todo list 里面找事来做。

不如隐茶去 | 园豆:559 (小虾三级) | 2019-04-29 10:50
0

单线程的解释:主线程一个,底层工作线程多个。
可参考:https://www.cnblogs.com/linzhanfly/p/9082895.html

hitcp | 园豆:210 (菜鸟二级) | 2019-04-29 14:23
0

网络编程性能是好,异步IO。适合开发WEB。

Beyond-bit | 园豆:2885 (老鸟四级) | 2019-04-30 13:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册