原文:浅析libuv源码-node事件轮询解析(1)

好久没写东西了,过了一段咸鱼生活,无意中想起了脉脉上面一句话: 始终保持自己的竞争力。所以,继续开写 一般的JavaScript源码看的已经没啥意思了,我也不会写什么xx入门新手教程,最终决定还是啃原来的硬骨头,从外层libuv gt node gt v 一步步实现原有的目标吧。 libuv核心还是事件轮询,前几天从头到尾看了一遍官网的文档,对此有了一些更深的理解。 虽然现在开发用的mac,但是 ...

2019-05-06 20:30 2 421 推荐指数:

查看详情

浅析libuv源码-node事件轮询解析(3)

  好像博客有观众,那每一篇都画个图吧!   本节简图如下。   上一篇其实啥也没讲,不过node本身就是这么复杂,走流程就要走全套。就像曾经看webpack源码,读了300行代码最后就为了取package.json里面的main属性,导致我直接弃坑了,垃圾源码看完对脑子没一点 ...

Sat May 11 03:13:00 CST 2019 0 466
浅析libuv源码-编译启动

  面试的间隙回头复习了一下node,感觉node就像一个胶带,把V8和libuv粘在了一起。   V8毫无疑问,负责解析执行JavaScript,相当于语言层面的桥梁;而libuv则是负责操作系统底层功能的封装,例如基于IOCP的event loop、file system ...

Wed Nov 28 10:45:00 CST 2018 0 858
浅析libuv源码-获取精确时间

  在Timer模块中有提到,libuv控制着延迟事件的触发,那么必须想办法精确控制时间。   如果是JS,获取当前时间可以直接通过Date.now()得到一个时间戳,然后将两段时间戳相减得到时间差。一般情况下当然没有问题,但是这个方法并不保险,因为本地计算机时间可以修改。   libuv显然 ...

Fri Dec 07 11:04:00 CST 2018 0 1089
轮询与长轮询 浅析

轮询:说白了就是客户端定时去请求服务端, 是客户端主动请求来促使数据更新; 长轮询:说白了 也是客户端请求服务端,但是服务端并不是即时返回,而是当有内容更新的时候才返回内容给客户端,从流程上讲,可以理解为服务器向客户端推送内容; 从中大家可以看出区别: 轮询: 1:大量耗费 ...

Sat Aug 12 00:32:00 CST 2017 1 2148
Nodejs事件引擎libuv源码剖析之:高效队列(queue)的实现

声明:本文为原创博文,转载请注明出处。 在libuv中,有一个只使用简单的宏封装成的高效队列(queue),现在我们就来看一下它是怎么实现的。 首先,看一下queue中最基本的几个宏: 首先,QUEUE被声明成一个"具有两个char*元素 ...

Thu Nov 10 22:14:00 CST 2016 2 5208
libuv事件循环

目录 1、说明 2、数据类型 2.1、uv_loop_t 2.2、uv_walk_cb 3、API 3.1、uv_loo ...

Wed Feb 03 19:30:00 CST 2021 0 514
libuv源码分析(1)

libuv我在今年四月份的时候开始接触,一开始也遇到了很多坑,但后来理解并遵守了它的设计思想,一切就变得很方便。这几天开始着手精读它的源码,本着记录自己的学习痕迹,也希望能增加别人搜索相关问题结果数的目的,因此就有了这些东西,这个系列至少会有四篇,后续再说吧。 那么它是什么,一个高效轻量的跨平台 ...

Sat Jul 16 10:47:00 CST 2016 1 8182
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM