@Node.js(一)
Node.js
- Node.js不是一种单独的语言,是JS运行的平台,它本身也是用JS编程
- Node.js不用建在任何服务器软件上面
- Node.js没有根目录的概念,没有web容器(顶层路由设计,可以设置很漂亮的路由)
Node.js特点(单线程、非阻塞I/O、事件驱动)
- 单线程:它是单线程的,但是它在宏观上面实现并发(8GB可以同时处理4万用户),优点:不会有线程创建和销毁的时间开销
- 非阻塞I/O:核心是一个线程永远在执行计算操作,该线程CPU的核心利用率为100%
- 事件驱动:当某个事件携带有磁盘I/O,网络通讯和数据库查询等操作时,不会等着进行完,而是继续执行下面的代码,然后操作完了后通过回调函数来处理(此过程中可以响应其他事件)
其实可以发现,这三个特性实际上是在做同一件事,是一个特性,离开谁都不可以
Node.js适合开发什么?
- 总结一下,Node.js善于I/O,但是不善于计算,因为Node.js最擅长任务调度,需要过多的CPU计算的业务,不适合Node.js,原因是过多的CPU计算的业务也相当于是阻碍了线程
具体实例场景
- 用户表单收集:比如百度的某些表单,知乎中的站内信功能
- 考试系统
- 聊天室
- 图文直播
- 提供JSON的API