摘要: Node.js 在主线程里维护了一个事件队列,当接到请求后,就将该请求作为一个事件放入这个队列中,然后继续接收其他请求。当主线程空闲时(没有请求接入时),就开始循环事件队列,检查队列中是否有要处理的事件,这时要分两种情况:如果是非 I/O 任务,就亲自处理,并通过回调函数返回到上层调用;如果是 I/ 阅读全文
posted @ 2020-04-23 09:04 乡乡 阅读(343) 评论(0) 推荐(0) 编辑
摘要: Nodejs之所以单线程可以处理高并发的原因,得益于libuv层的事件循环机制,和底层线程池实现。(1)前提:I/O密集型任务,如果是CPU密集型,也会产生阻塞。(2)单线程的解释:主线程一个,底层工作线程多个。(3)事件机制的底层依赖库:libuv、libeio、libev。 阅读全文
posted @ 2020-04-23 09:02 乡乡 阅读(748) 评论(0) 推荐(0) 编辑
摘要: Nodejs所谓的单线程,只是主线程是单线程,所有的网络请求或者异步任务都交给了内部的线程池去实现,本身只负责不断的往返调度,由事件循环不断驱动事件执行。 阅读全文
posted @ 2020-04-23 09:00 乡乡 阅读(2525) 评论(0) 推荐(0) 编辑