运行过程
主线程
- 执行 node 代码,将代码加入队列中
- 执行同步操作代码
- 同步执行完成后,执行异步代码
- 异步分为两种
- IO1:会从线程池取一条子线程来帮助主线程执行
- 非IO2 : 判断能否执行,能执行加入队列,不能就跳过
- 主线程会一直循环,直到队列中没有代码后,主线程才会退出
IO 即 input 和 out,指有数据操作
无数据操作,例如定时器 setTimeOut()
子线程
主要用来执行异步操作
- 无任务时放在线程池中休息
- 有异步IO操作,执行异步的IO操作
- 执行完成后的子线程会把IO操作的回调,扔回给队列