为什么Nodejs的性能很高?
时间: 2019-04-29来源:博客园
前景提要
为什么Nodejs的性能很高?
0 悬赏园豆: 10 [待解决问题] 在网上看到很多人都说Nodejs性能非常棒,
但又说它是单线程的,而且还支持异步操作...

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

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

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

谢谢各大神的耐心解答. Nodejs hexllo | 菜鸟二级 | 园豆: 405
提问于:2019-04-29 10:32 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(3) 1 因为 JS 有事件循环这种东西: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop
太长不看版:
JS 提供了一些方式(setTimeout, ajax...),可以把一些操作放到一个 todo list 里面。然后 js 的单线程就不断的从 todo list 里面找事来做。 不如隐茶去 | 园豆:549 (小虾三级) | 2019-04-29 10:50 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 单线程的解释:主线程一个,底层工作线程多个。
可参考: https://www.cnblogs.com/linzhanfly/p/9082895.html 信息技术爱好者 | 园豆:210 (菜鸟二级) | 2019-04-29 14:23 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 网络编程性能是好,异步IO。适合开发WEB。 Beyond-bit | 园豆:2804 (老鸟四级) | 2019-04-30 13:43 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行