Node.js 事件驱动模型

upload successful

运行过程

主线程

  1. 执行 node 代码,将代码加入队列中
  2. 执行同步操作代码
  3. 同步执行完成后,执行异步代码
  4. 异步分为两种
    1. IO1:会从线程池取一条子线程来帮助主线程执行
    2. 非IO2 : 判断能否执行,能执行加入队列,不能就跳过
  5. 主线程会一直循环,直到队列中没有代码后,主线程才会退出
  1. IO 即 input 和 out,指有数据操作

  2. 无数据操作,例如定时器 setTimeOut()

子线程

主要用来执行异步操作

  1. 无任务时放在线程池中休息
  2. 有异步IO操作,执行异步的IO操作
  3. 执行完成后的子线程会把IO操作的回调,扔回给队列