node的多进程和多线程是什么


今天小编给大家分享一下node的多进程和多线程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在node.js中,javascript代码的执行是单线程执行的,可是Node 本身其实是多线程的。node本身分为三层第一层,Node.js 标准库,这部分是由 Javascript编写的,即我们使用过程中直接能调用的 API,在源码中的 lib 目录下可以看到。第二层,Node bindings,这一层是 Javascript 与底层 C/C++ 能够沟通的关键,前者通过 bindings 调用后者,相互交换数据,是第一层和第三层的桥梁。第三层,是支撑 Node.js 运行的关键,由 C/C++ 实现,是node实现的一些底层逻辑。其中,第三层的Libuv,为 Node.js 提供了跨平台,线程池,事件池,异步 I/O 等能力,是 Node.js 如此强大的关键。由于Libuv提供了事件循环机制,所以在io处理方面,javascript并不会发生阻塞,所以我们用node搭建web服务时,并不需要担心io量过大,导致其他请求阻塞。可是,非io任务的执行,是在node主线程中执行的,是单线程执行任务,如果有非常消耗时间的同步计算任务,将会阻塞其他代码的执行。上面这串代码,如果http请求了 /compute ,node会调用cpu进行大量的计算,这时如果有其他http请求进入,将会发生阻塞。那么如何解决这个问题呢?有两种方案,一种是使用children_process或者cluster开启多进程进行计算,一种是使用worker_thread 开启多线程进行计算多进程 vs 多线程对比一下多线程与多进程:采用多线程来解决上面代码的计算问题:采用多进程来解决上面代码的计算问题:以上就是“node的多进程和多线程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主免费云主机域名机行业资讯频道。

相关推荐: node数组去重的方法有哪些

本文小编为大家详细介绍“node数组去重的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“node数组去重的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 方法:1、利用map数据结构实现去重,将数组的每一个元素…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/11 18:51
下一篇 09/11 18:52

相关推荐