如何理解node是单线程异步I/O

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解node是单线程异步I/O相关的知识,希望对你有一定的参考价值。

I/O: 指的是设备与cpu连接的接口电路的操作

异步: 就是不用等一个操作完成,而是去执行其他代码,等操作完成之后再去执行那个操作的结果,

nodeJS使用回调函数来实现的

单线程:在实现异步操作时有很多解决办法,Apache的解决办法是多线程,应该说很多编程语言都使用了多线程,但是在后来的测试和实际应用中,

多线程程序在超过一万人时性能急剧下降,因为创建一个新线程是很耗性能能,即使多线程会把CPU利用到极致但也不能解决过多的人来访问。所以

node的单线程就成为它璀璨的亮点。而且它的回调和它的语法配合的很有默契。但是它也暴露了它的缺点,就是不能充分利用CPU。所以对待CPU

密集型操作它的性能就照多线程还是不足的。为了解决这个问题,node有了新建进程或子线程的模块(child-process)在遇到CPU密集型操作时

可以新建子进程来取执行。

https://segmentfault.com/a/1190000007343993这个网址把child-process说的很细

以上是关于如何理解node是单线程异步I/O的主要内容,如果未能解决你的问题,请参考以下文章

nodejs 单线程 高并发

nodejs真的是单线程吗?

浅谈Node.js单线程模型

浅谈Node.js单线程模型

NodeJS 真的是单线程的吗?

node.js的异步I/O事件驱动单线程