原创分享

226 篇文章
30 人订阅

全部文章

theanarkh

如何在nodejs中实现兄弟进程通信

在nodejs主进程中,开启一个额外的子进程A,进程A负责和线程池通信,完成cpu密集型的任务。通过nodejs主进程创建出来的多个nodejs工作进程可以把任...

8340
theanarkh

nodejs源码分析第十九章 -- udp模块

udp不是面向连接的协议,所以使用上会比tcp简单,但是作为传输层的协议,udp虽然没有tcp那么复杂,但是他和tcp一样,使用四元组来标记通信的双方(单播的情...

5520
theanarkh

通过源码理解rarp协议(基于linux1.2.13)

rarp是通过mac地址查询ip的协议,主要用于有mac的主机,但是没有ip的情况。我们先看看rarp协议的协议定义(来自网上的图[1])。

5220
theanarkh

通过源码理解IGMP v1的实现(基于linux1.2.13)

IGMP是组成员管理协议,我们知道一般的通信是单播的,虽然主机发出的单播报文,局域网中的每个主机都会收到,但是默认情况下,主机只会处理目的ip是自己的报文。如果...

8320
theanarkh

nodejs源码解析之udp服务器

我们看到创建一个udp服务器很简单,首先申请一个socket对象,在nodejs中和操作系统中一样,socket是对网络通信的一个抽象,我们可以把他理解成对传输...

8520
theanarkh

如何解决nodejs中cpu密集型的任务

1 Libuv和nginx的线程池:线程数固定,多个线程共享一个任务队列,没有任务时主动挂起,不会主动退出。

9320
theanarkh

理解nodejs原理

阅读nodejs源码的初衷是让自己深入理解nodejs的原理,但是我发现有很多同学对nodejs原理也非常感兴趣,因为业余时间里也一直在写一些关于nodejs源...

11280
theanarkh

nodejs创建线程问题

我们知道在nodejs中可以使用new Worker创建线程。今天有个同学恰好问到,怎么判断创建线程成功,这也是最近开发线程池的时候遇到的问题。nodejs文档...

8620
theanarkh

nodejs多线程的探索和实践

需求中有以下场景 1 对称解密、非对称解密 2 压缩、解压 3 大量文件的增删改查 4 处理大量的字符串,解析协议 上面的场景都是非常耗时间的,解密、压缩、文件...

3810
theanarkh

发布你的第一个nodejs c++插件

之前分享了如何写一个nodejs的c++插件。今天分享一下如何发布一个c++插件。

5910
theanarkh

nodejs源码分析之线程

我们先分析一下这个代码的意思。因为上面的代码在主线程和子线程都会被执行一遍。所以首先通过isMainThread判断当前是主线程还是子线程。主线程的话,就创建一...

8940
theanarkh

如何控制nodejs的线程数

nodejs提供了线程能力,但是我们不能一味地开启线程,需要控制数据,本文分享如何去控制数量。

8720
theanarkh

关于nodejs源码的研究

回首对nodejs的源码研究,时间已经过去了一年多。我很喜欢js这门语言,有时候感觉他和c语言一样,在c语言里,很多东西都需要自己实现,让我们可以发挥无限的创造...

7510
theanarkh

nodejs源码分析之connect

今天我们来分析connect函数。connect是发起tcp连接的api。本质上是对底层tcp协议connect函数的封装。我们看一下nodejs里做了什么事情...

9220
theanarkh

记一次nodejs问题排查

相信大家都遇到过Error: read ECONNRESET这个错误,本文分享针对该错误的分析过程。虽然通过ECONNRESET错误码我们很容易查到这个错误意味...

8820
theanarkh

理解nodejs中js和c++的通信原理

本文分享一下nodejs中js调用c++模块的一些内容。js调用c++模块是v8提供的能力,nodejs是使用了这个能力。这样我们只需要面对js,剩下的事情交给...

10920
theanarkh

nodejs可读流源码分析

可读流是对数据消费的抽象,nodejs中可读流有两种工作模式:流式和暂停式,流式就是有数据的时候就会触发回调,并且把数据传给回调,暂停式就是需要用户自己手动执行...

9530
theanarkh

nodejs流基类源码分析

流的基类只提供了一个函数就是pipe。用于实现管道化。这个方法代码比较多,分开说。

7630
theanarkh

nodejs源码分析之c++层的通用逻辑

我们知道nodejs分为js、c++、c三层,本文以tcp_wrap.cc为例子分析c++层实现的一些通用逻辑。nodejs的js和c++通信原理q.com/s...

8020
theanarkh

实现自己的应用层协议和解析器

我们每天都在使用应用层协议,http协议,smtp协议,dns协议等。但是我们有没有想过实现自己的应用层协议呢?有没有想过应用层协议的实现和解析呢?本文就着这些...

6220

扫码关注云+社区

领取腾讯云代金券