node.js - 关于nodeJS的几个理论知识
伊谢尔伦
伊谢尔伦 2017-04-17 14:31:40
[Node.js讨论组]


1.nodeJS是单线程,为什么每个API又可以作为一个独立线程运行?
2.最后一条具体怎么理解?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
黄舟

http://www.infoq.com/cn/articles/nodejs-asynchronous-io

怪我咯

推荐我之前写的一篇文章https://segmentfault.com/a/1190000005173218

  1. nodejs是事件驱动型的,事件驱动的观察者运行在单线程中,当调用异步函数的时候,该线程就会将这些函数任务布置下去,比如读取一个文件,监听某个端口,都会调用libuv库开启一个新的线程。但是并不是所有异步函数都会开启一个新的线程,可能只是简单的运行在单线程中。

  2. 单线程就是在一个whilte(true)里面检测事件队列有没有新的事件发生,比如文件读取结束了,或者是settimeout计时结束了,都会将一个事件推入到事件队列中,观察者每隔一段时间就去看看事件队列中有没有新的事件,有的话就会去暂停while(true)循环,然后调用回调函数执行,执行完毕后再开始while(true)循环

PHP中文网

单线程是说,对于你写的的 js 代码来说,代码执行的"指针"只能会位于一个地方,第一个地方的语句执行完之前不可能无缘无辜跳到另一个地方执行。

异步是说,你调用某个 API 之后,这句代码立即返回,去执行你写代码的后面一句。但是 nodejs 后台会同时去执行你发出的这条指令。

最后一句说的是 nodejs 的实现原理,这个初学可以先不用关心。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号