Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

如何正确理解node的Event-Loop或事件轮询?

$
0
0

今天在看node的Event-Loop时遇到了很久以来的疑问,不甚了解;

  1. 首先阐述一下我阅读完这两篇博客的收获和问题这是 第一篇:链接描述第二篇:链接描述

    很希望有大神能帮忙解惑一下谢谢!

  2. 我所理解的event-loop

    • 通过javascript调用node的核心模块,将参数和回调函数传入到核心模块。
    • 由node binding沟通C/C++,实现数据交互。
    • 由node的核心模块将参数和回调函数封装成请求对象,libuv将请求对象推入线程池,由空闲的线程去执行。
    • 执行完后将执行结果放到请求对象的result属性上。并发出一个完成通知,然后在libuv的event-loop队列中注册一个回调函数?也就是请求时的回调函数???
    • 每次Event-Loop时检查是否有完成了的操作。有就放在观察者队列?
    • 然后事件触发时,会去取出(观察者队列中?)之前封装请求对象时的回调函数,并将result当成参数,完成事件的处理?
    • 事件循环队列和观察队列不是一个队列 对吧?或者说我概念没理清?
  3. 由于深知看懂底层C/C++还有一段路要走,所以希望大咖们帮忙解答一下小弟的疑惑?谢谢(希望答者是真正的明白者!!!再次谢谢)


Viewing all articles
Browse latest Browse all 14821

Trending Articles