今天小编给大家分享一下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的多进程和多线程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注云技术行业资讯频道。
本篇内容主要讲解“Vue的面试知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue的面试知识点有哪些”吧!进入正题,我相信不论什么项目几乎都会有一个必不可少的功能,就是用户操作反馈、或者提醒,像这样(简…