EventLoop
2017-03-23 20:15:54 0 举报
EventLoop是Node.js中的核心模块,它提供了异步I/O的处理机制。在单线程的环境中,EventLoop通过将任务划分为事件循环队列和微任务队列,实现了高并发的运行效果。事件循环队列主要处理定时器、I/O操作等异步任务,而微任务队列则处理Promise、MutationObserver等微任务。当事件循环队列为空时,EventLoop会从微任务队列中取出一个任务执行,直到微任务队列也为空。这种机制使得Node.js可以在不阻塞主线程的情况下,高效地处理大量并发请求。
作者其他创作
大纲/内容
NULL
fd:0
0
mask:0
epoll_event
...
setsize
epfd : 3
typedef struct aeEventLoop { int maxfd; /* 当前注册的最大文件描述符 */ int setsize; /* 监控的最大文件描述符数 */ long long timeEventNextId; /* 定时事件ID */ time_t lastTime; /* 最近一次处理定时事件的时间 */ aeFileEvent *events; /* 注册事件链表 */aeFiredEvent *fired; /* 发生事件链表 */ aeTimeEvent *timeEventHead; /* 定时事件链表*/int stop; /* 是否停止循环*/ void *apidata; /* 特定接口的特定数据*/ aeBeforeSleepProc *beforesleep; /*在sleep之前执行的程序*/} aeEventLoop;
0 条评论
下一页