node的核心概念
1.Nodejs最擅长高并发:Node js最擅长的就是处理高并发,在Java,PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个 新的和下滑层,而每个线程需要耗费大约2MB的内存。也就是说,理论上,一个8GB内存的服务器一颗同时连接的最大用户数为4000个左右。而web应用程序支持更多的用户,就需要增加服务器的数量,而web应用程序的硬件成本当然就要上升了。Node。js不为每个用户连接创建一个新的线程,而仅仅使用一个线程。但有用户连接了,就出阿发一个内部事件,通过非阻塞I/O,事件驱动机制,让Node。js程序宏观上也是并行的。使用Node.js,一个8GB的服务器,可以同时处理超过4万用户的连接。
2.单线程事件驱动的异步式I/O比传统的多线程阻塞式I/0究竟好在哪里呢?
异步式I/0就是少了多线程的开销。对操作系统来说,创建一个线程的代价是十分昂贵的,需要给它分配内存,列入调度,同时在线程切换的时候还要执行内存换页,CPU的缓存被清空,切换回来的时候还要重新从内存中读取信息,破坏了数据的局部性。
3.node.js实现的功能多:node js不仅可以像其他的后端欲养一样写动态网站,写接口,还可以应用在云计算平台,游戏开发,区块链开发,即时通讯,跨平台App开发,桌面应用开发(electron),云直播,物联网领域等。
4.阻塞I/O就是指当创建多个线程时,会因为I/O在从硬件中获取数据时来不及,从而导致多个线程处于等待状态。
node与V8
node的核心概念之事件循环