1.首先队列中按顺序存放代码,代码类型有 异步非io代码、同步代码、异步io代码 三种。
2.主线程安装队列顺序遍历代码,异步代码放在队列后面,先执行同步代码。
3.执行完同步代码后,继续遍历异步代码,遇到异步非io时,先判断能不能操作,不能的话跳过。(例如setTimeout、setInterval这种需要等待时间的代码)。
4.遇到异步io时,在线程池中拿出一个子线程(线程池存放事先创建好的线程,等待任务)去执行。
5.主线程继续遍历代码,若子线程执行完异步io代码后,将回调函数放到队列最后。
6.如果异步非io代码能运行了,例如等待时间到了,主线程再去查看,判断里面的代码类型,继续上面的操作
--- 本人对此知识点也掌握不够,先写下大概,如果有误,希望大牛指出。