2.模块定义:提供exports对象用于导出当前模块的方法或者变量,并且是唯一导出的出口
WebSocket 与 Node 之间的配合可以说是天作之合:WebSocket 客户端基于事件的编程模型与 Node 中自定义事件相差无几;WebSocket...
var str = '深入浅出node.js' var buf = new Buffer(str, 'utf8') console.log(buf) // <Buffer e6 b7 b1 e5 85
本章学习 V8 的垃圾回收机制以及如何高效使用内存,内存泄漏以及如何排查内存泄漏。
server.bind(41234) (2) 创建 UDP 客户端 var dgram = require('dgram') var message = Buffer.alloc(13, 'Hello Node.js...client.close() } ) 客户端执行后,服务端输出: $ node main.js $ server listening 0.0.0.0:41234 $ server got: Hello Node.js
异步的概念首先在 Web2.0 中火起来,是因为浏览器中 JavaScript 在单线程上执行,而且它还与 UI 渲染共用一个线程。这意味着 JavaScrip...
创建子进程 child_process 模块给予 Node 可以随意创建子进程的能力,详细的使用方法可以参考这篇文章:Node.js 中 child_procss 模块。
[《深入浅出 Node.js》] 读书笔记。 # 缘起 最初的目标是写一个基于事件驱动、非阻塞 I/O 的 Web 服务器。考虑高性能、符合事件驱动、没有历史包袱选择了 JavaScript。
简介 不知不觉 Node 已经更新到第十个版本了,本人使用 Node 也有两年多时间,之前学习的东西一直零零散散,没有形成系统的知识体系,于是最近又抽时间回顾这本经典的 《深入浅出Node.js》,阅读的过程中...(1) 核心模块在 Node 源码编译过程中,编译成为二进制文件,在 Node 启动阶段部分核心模块就被加载进内存,所以省去了文件定位和编译的时间,加载速度最快。...Node 使用 V8 附带的 js2c.py 工具,将所有内置的 JS 代码(src/node.js 和 lib/*.js)转换为 C++ 里面的数组,生成 node_natives.h 头文件。
AQS 简介在深入源码之前,让我们先简要了解一下 AQS 的背景。AQS(AbstractQueuedSynchronizer)是 Java 并发包中的一个抽象基类,用于构建锁和同步器。...AQS 源码解析AQS 类结构AQS 的源码位于 java.util.concurrent.locks 包中,它的主要类结构如下:public abstract class AbstractQueuedSynchronizer
Koa2 是一个现代的、简洁的 Node.js 框架,由 Express 团队设计和开发。...安装 Koa2在开始使用 Koa2 之前,我们需要先安装 Node.js 和 npm(Node.js 包管理器)。可以从 Node.js 官方网站下载并安装最新版本的 Node.js。...安装完 Node.js 之后,可以通过以下命令安装 Koa2:npm install koa安装完成后,我们可以创建一个简单的 Koa2 应用程序来验证安装是否成功。
Node.js 的出现使得前端工程师可以跨端工作在服务器上,当然,一个新的运行环境的诞生亦会带来新的模块、功能、抑或是思想上的革新,本文将带领读者领略 Node.js (以下简称 Node) 的模块设计思想以及剖析部分核心源码实现..._load 函数的源码实现,为了方便大家理解,我把注释加在了文中。 Module....省略 esm 模块的支持 }; 后缀处理 可以看出,针对不同的文件后缀,Node.js 的加载方式是不同的,以下针对 .js, .json, .node 简单进行分析。...return process.dlopen(module, path.toNamespacedPath(filename)); }; 从上面的三段源码,我们看出来并且可以理解,只有 JS 后缀最后会执行实例方法
最近组里有同学做了 React Router 源码相关的分享,我感觉这是个不错的选题, React Router 源码简练好读,是个切入前端路由原理的好角度。...只有先把握作为上游的需求和设计,才能清晰和全面地解析作为下游的源码。...,源码中所体现的前端路由的设计实现,也相信会对读者们有所启发借鉴。...虽然本文对 React Router 源码的解析就到此为止, 但有关前端路由以及 React Router 的探索不会停止,怎样从源码到落地,怎样为项目做路由选型,怎样设计一个合理的前端路由系统......React Router hooks 源码解析 history 库源码解析 紧追技术前沿,深挖专业领域 扫码关注我们吧!
Node.js 进程启动时,首先执行 c / c++ 代码,然后 c / c++ 加载并执行 lib/internal/bootstrap_node.js 并给予一个 process 参数( 运行上下文...) // lib/internal/bootstrap_node.js 概览 // Hello, and welcome to hacking node.js!...exports: 默认值是 {} loaded / loading: NativeModule 状态 _cache: 简单的模块缓存 _source: 模块源码资源 require():...(),源码如下: // bootstrap main module....至此 启动-js部分 已经全部完成,后续模块加载部分,见 Node.js源码解析-require背后 End 启动只是 Node.js 源码的一小部分,除此之外还有大量的内置模块和 c / c++ 源码
首先,从源码上来看,LinkedHashMap 继承自 HashMap,所以 HashMap 有的大部分特性,LinkedHashMap 都有。比如:线程安全问题等。...顺着 LinkedHashMap 的源码往下看,你会发现 LinkedHashMap 提供了 5 个构造函数。...LinkedHashMap 相对于 HashMap 的源码比,是很简单的。因为大树底下好乘凉。它继承了 HashMap,仅重写了几个方法,以改变它迭代遍历时的顺序。
源码解析 本节内容都以3.5.7版本为例 核心接口和类 TxnLog:接口类型,提供读写事务日志的API。 FileTxnLog:基于文件的TxnLog实现。...那么接下来我们就来看它的相关源码。
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
2020.4.18 改进小结部分 1.2 2020.5.4 修复笔误部分 1.4 2020.7.21 段落重新排版,增强语义 1.5 2020.8.6 增加题图 1.6 2021.6.22 标题从深入浅出...Zookeeper(三):会话管理变更为深入浅出Zookeeper源码(三):会话管理 前言 我们知道zookeeper是一个分布式协同系统。...相关源码:SessionId的分配 /** * Generates an initial sessionId....相关源码:SessionTrackerImpl.run @Override public void run() { try { while (running...计算新的超时时间(参考上面提到的会话超时计算方法,也可以看ExpiryQueue.update) 迁移会话(从老桶到新桶) 相关源码:SessionTrackerImpl.touch synchronized
1.1 2020.4.18 改进小结部分 1.2 2020.5.4 修复笔误部分 1.4 2020.7.21 段落重新排版,增强语义 1.5 2020.8.6 增加题图 1.6 2021.6.22 标题从深入浅出...Zookeeper(三):会话管理变更为深入浅出Zookeeper源码(三):会话管理 前言 我们知道zookeeper是一个分布式协同系统。...相关源码:SessionId的分配 /** * Generates an initial sessionId....相关源码:SessionTrackerImpl.run @Override public void run() { try { while (running...计算新的超时时间(参考上面提到的会话超时计算方法,也可以看ExpiryQueue.update) 迁移会话(从老桶到新桶) 相关源码:SessionTrackerImpl.touch synchronized
领取专属 10元无门槛券
手把手带您无忧上云