安装包地址:http://nodejs.org ;检测是否安装成功 cmd , node
设计思想:单线程,异步式I/O,事件驱动式
nodejs线程执行的过程:当发起多个请求时,nodejs会专注的去执行一个请求,并把它放入事件队列里,它不会等待结果返回,而是直接继续执行后面的语句,直到进入事件循环。当结果返回时,会将事件发送到事件队列,等到线程进入事件循环后,才会调用之前的回调函数继续执行后面的逻辑。返回结果都是由事件循环来处理
supervisor:它会监视你对代码的改动,并自动重启nodejs,不用你每次改动后手动重启。
使用方法:安装 npm install -g supervisor(windows); sudo npm install -g supervisor(Linux,Mac)。启动文件时改用 supervisor 启动,栗子:supervisor app.js
I/O操作:线程在执行中如果遇到磁盘读写或网络通信统称为I/O操作
阻塞I/O:操作系统会剥夺这个线程的CPU控制权,使其暂停执行,同时将资源让给其他的工作线程,这种线程调度方式为阻塞。当I/O操作完毕时,操作系统将这个线程的阻塞状态解除,恢复其对CPU的控制权,令其继续执行。这种模式称为同步式I/O(Synchronous I/O) 或阻塞式I/O(Blocking I/O)
异步I/O:异步式I/O(Asynchronous I/O)或非阻塞式I/O(Non-blocking I/O),当线程遇到I/O操作时,不会以阻塞的方式等待I/O操作的完成或数据的返回,而只是将I/O请求发送给操作系统,继续执行下一条语句。当操作系统完成I/O操作时,以事件的形式通知执行I/O操作的线程,线程会在特定时候处理这个事件。为了处理异步I/O,线程必须有事件循环,不断的检查有没有未处理的事件,依次给予处理。