js单线程运行的机制简单来说就是
浏览器的 js引擎主线程运行 所有的同步和异步操作,但并非说 整个网页的访问过程就是单线程死磕的, 另外的组件包括 浏览器提供的一个任务队列(盛放其他事件处理线程结束后的回调处理), 其他事件处理线程(如 ajax onclick 等事件)
### 协程篇
协程在此处的作用仅仅是 取代了 我们注册回调函数链的一个难维护的局面, 而是让协程自己保存自己回调的处理,对于代码维护好维护;
至于 底层的 epoll 及 我们的 event_loop 则承担了一个这样的角色, epoll 原理上来说是 对所有的socket进行一个基于事件驱动的阻塞操作,有事件发生则进行后续的回调处理,
我们的 event_loop 则挂起不 有io延时的操作(我们设置的), 当延时做完之后, send到指定协程进行后续处理!
https://www.cnblogs.com/lyt0207/p/11956682.html
https://www.cnblogs.com/sunidol/p/11301808.html js的几个线程
https://www.cnblogs.com/Qooo/p/13685266.html
https://zhuanlan.zhihu.com/p/31634491
https://blog.csdn.net/zhoulei124/article/details/94319248 py实现
http://www.ruanyifeng.com/blog/2014/10/event-loop.html 阮一峰
主线程从"任务队列"中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为Event Loop(事件循环)。
redis协程调度