zl程序教程

源码解读

  • 源码解读etcd heartbeat,election timeout之间的拉锯

    源码解读etcd heartbeat,election timeout之间的拉锯

    转一个我在知乎上回答的有关raft election timeout/ heartbeat interval 的回答吧。答:准确来讲:election是timeout,而heartbeat 是interval, 这样就很容易理解了。heartbeat interval 是leader 安抚folower的时间,这个时间间隔是体现在leader上,是leader发送心跳的周期 (我xxxx ms

    日期 2023-06-12 10:48:40     
  • datax(12):调度源码解读AbstractScheduler「建议收藏」

    datax(12):调度源码解读AbstractScheduler「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 datax的jobContainer最终会通过调度周期性的执行,今天把它看完;一、基类AbstractScheduler概述类继承关系 全部方法 二、AbstractScheduler的主要属性和方法1、主要属性 /** * 脏数据行数检查器,用于运行中随时检查脏数据是否超过限制(脏数据行数,或脏数据百分比) */ private Erro

    日期 2023-06-12 10:48:40     
  • datax(8):TaskGroupContainer源码解读

    datax(8):TaskGroupContainer源码解读

    大家好,又见面了,我是你们的朋友全栈君。 继续深挖 datax里的container,任何一个任务进入datax都会判断是jobContainer还是TaskGroupContainer。那后者要做哪些事情。一、TaskGroupContainer概述JobContainer将所有的task分配到TaskGroup中执行,TaskGroup启动5个线程去消费所有的task TaskGrou

    日期 2023-06-12 10:48:40     
  • datax(19):源码解读内置Transformer「建议收藏」

    datax(19):源码解读内置Transformer「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 通过datax(18)已经对transformer有了初步了解,继续撸代码,看datax已经内置的5种简单类型transformer;一、概述目前datax内置了5种常用的transformer,分别如下截取SubstrTransformer填充PadTransformer替换ReplaceTransformer过滤FilterTransformer

    日期 2023-06-12 10:48:40     
  • WeakHashMap,源码解读[通俗易懂]

    WeakHashMap,源码解读[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈概述WeakHashMap也是Map接口的一个实现类,它与HashMap相似,也是一个哈希表,存储key-value pair,而且也是非线程安全的。不过WeakHashMap并没有引入红黑树来尽量规避哈希冲突带来的影响,内部实现只是数组+单链表。此外,WeakHashMap与HashMap最大的不同之处在于,WeakHashMap的key是“弱键”(weak

    日期 2023-06-12 10:48:40     
  • httprunner3源码解读(2)models.py「建议收藏」

    httprunner3源码解读(2)models.py「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。源码目录结构我们首先来看下models.py的代码结构 我们可以看到这个模块中定义了12个属性和22个模型类,我们依次来看 属性源码分析import os from enum import Enum from typing import Any from typing import Dict, Text, Union, Callable from t

    日期 2023-06-12 10:48:40     
  • HashMap源码解读:扩容

    HashMap源码解读:扩容

    HashMap源码解读:扩容引言HashMap的扩容是个很重要的操作,jdk1.7往前这里会发生死链问题,都是值得研究的。我最开始以为HashMap线程不安全的原因是因为扩容,没有注意到jdk版本的影响,就去看1.8的扩容为啥会发生死链,但因此也发现了这个方法里的巧妙设计。分析以下这段代码是jdk1.8HashMap扩容时,遍历原HashMap的桶,将元素放到新HashMap的桶里。

    日期 2023-06-12 10:48:40     
  • React源码解读之任务调度

    React源码解读之任务调度

    React 设计体系如人类社会一般,拨动时间轮盘的那一刻,你便成了穿梭在轮片中的一粒细沙,角逐过程处处都需要亮出你的属性,你重要吗?你无可替代吗?你有特殊权限吗?没有,那不好意思,请继续在轮片中循环。属于你的生命之火殆尽,前来悼念之人很多,这幕,像极了出生时的场景。干啥玩意儿,这是技术文章不是抒情散文!下面进入正题。创建的准备上一节已经说明了,主要定义与更新相关的数据结构和变量,计算过期时间等。完

    日期 2023-06-12 10:48:40     
  • AudioRecord源码解读(3)

    AudioRecord源码解读(3)

    本篇介绍AudioRecord可以用来采集PCM,本篇介绍下AudioRecord的创建流程。源码介绍 public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)复制这儿的souce可以选择的如下:

    日期 2023-06-12 10:48:40     
  • XXL-JOB核心源码解读及时间轮原理剖析

    XXL-JOB核心源码解读及时间轮原理剖析

    你好,今天我想和你分享一下XXL-JOB的核心实现。如果你是XXL-JOB的用户,那么你肯定思考过它的实现原理;如果你还未接触过这个产品,那么可以通过本文了解一下。XXL-JOB的架构图(2.0版本)如下:架构图它是如何工作的呢?从使用方的角度来看,首先执行器要向服务端注册。那么这里你可能就有疑问了,执行器向服务端注册?怎么注册的?多久注册一次?采用什么通信协议?注册完了之后,服务端才能知道有哪些

    日期 2023-06-12 10:48:40     
  • React Context源码解读

    React Context源码解读

    目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api。大多数项目不会直接使用 createContext 然后向下面传递数据,而是采用第三方库(react-redux)。想想项目中是不是经常会用到 @connect(...)(Comp) 以及 <Provider value={store}><App /></Provider>?什么是 Co

    日期 2023-06-12 10:48:40     
  • Go 源码解读|如何用好 errors 库的 errors.Is() 与 errors.As() 方法

    Go 源码解读|如何用好 errors 库的 errors.Is() 与 errors.As() 方法

    前言快一个月没有更新技术文章了,这段时间投注了较多的时间学习字节的开源项目 Kitex/Hertz ,并维护一些简单的 issue ,有兴趣的同学也可以去了解:https://www.cloudwego.io/这段时间迟迟没有更新文章,一方面是接触到了很多大佬,反观自身技术深度远远不及,变得不敢轻易下笔;另一方面反思了一下自己之前的写作,确实也有一些功利的成分,有时为了更新而更新,打算纠正。接触开

    日期 2023-06-12 10:48:40     
  • React-Hooks源码深度解读3

    React-Hooks源码深度解读3

    useState 解析useState 使用通常我们这样来使用 useState 方法, function App() { const [num, setNum] = useState(0); const add = () => { setNum(num + 1); }; return ( <div> <p>数字: {num

    日期 2023-06-12 10:48:40     
  • React源码解读之任务调度5

    React源码解读之任务调度5

    React 设计体系如人类社会一般,拨动时间轮盘的那一刻,你便成了穿梭在轮片中的一粒细沙,角逐过程处处都需要亮出你的属性,你重要吗?你无可替代吗?你有特殊权限吗?没有,那不好意思,请继续在轮片中循环。属于你的生命之火殆尽,前来悼念之人很多,这幕,像极了出生时的场景。干啥玩意儿,这是技术文章不是抒情散文!下面进入正题。创建的准备上一节已经说明了,主要定义与更新相关的数据结构和变量,计算过期时间等。完

    日期 2023-06-12 10:48:40     
  • Input源码解读——从"Show tabs"开始

    Input源码解读——从"Show tabs"开始

    Input源码解读——从"Show tabs"开始本文基于Android T版本源码,梳理当用户在开发者选项中开启Show tabs功能后显示第点按操作的视觉反馈的原理,来进一步了解Android Input系统Settings 写入设置首先是设置应用(Settings)提供的开发者选项画面响应点击,将Show taps选项对应的设置Key SHOW_TOUCHES的 ON 值

    日期 2023-06-12 10:48:40     
  • Mybatis返回集合类型到底是空集合还是null?源码解读

    Mybatis返回集合类型到底是空集合还是null?源码解读

    Mybatis 作为国内开发中常用到的半自动 orm 框架,相信大家都很熟悉,它提供了简单灵活的xml映射配置,方便开发人员编写简单、复杂SQL,在国内互联网公司使用众多。本文针对笔者日常开发中对 Mybatis 返回类型的是否需要判断为 null 结合源码,思考总结而来Mybatis 版本 3.5.11Spring boot 版本 3.0.1github地址:https://github.com

    日期 2023-06-12 10:48:40     
  • react hook 源码完全解读_2023-02-20

    react hook 源码完全解读_2023-02-20

    前言从React Hooks发布以来,整个社区都以积极的态度去拥抱它、学习它。期间也涌现了很多关于React Hooks 源码解析的文章。本文就以笔者自己的角度来写一篇属于自己的文章吧。希望可以深入浅出、图文并茂的帮助大家对React Hooks的实现原理进行学习与理解。本文将以文字、代码、图画的形式来呈现内容。主要对常用Hooks中的 useState、useReducer、useEffect

    日期 2023-06-12 10:48:40     
  • React源码解读之任务调度_2023-02-20

    React源码解读之任务调度_2023-02-20

    React 设计体系如人类社会一般,拨动时间轮盘的那一刻,你便成了穿梭在轮片中的一粒细沙,角逐过程处处都需要亮出你的属性,你重要吗?你无可替代吗?你有特殊权限吗?没有,那不好意思,请继续在轮片中循环。属于你的生命之火殆尽,前来悼念之人很多,这幕,像极了出生时的场景。干啥玩意儿,这是技术文章不是抒情散文!下面进入正题。创建的准备上一节已经说明了,主要定义与更新相关的数据结构和变量,计算过期时间等。完

    日期 2023-06-12 10:48:40     
  • BitXHub 跨链插件(Fabric)源码解读

    BitXHub 跨链插件(Fabric)源码解读

    前言之前提到过趣链科技的 BitXHub 跨链平台是业界较为完善的跨链开源解决方案,主要通过中继链、网关和插件机制对跨链流程中的功能、安全性和灵活性等进行了优化。目前公司团队在做一个 BaaS 平台的跨链模块,我在其中负责跨链适配器部分,对应 BitXHub 平台就是监听模块和应用链插件模块。适配器将对应用链上的跨链事件作监听,并将相应参数传给网关作跨链相关的业务逻辑需求。因此,打算对 BitXH

    日期 2023-06-12 10:48:40     
  • Ajax::prototype源码解读

    Ajax::prototype源码解读

    AJAX之旅(1):由prototype_1.3.1进入javascript殿堂-类的初探 还是决定冠上ajax的头衔,毕竟很多人会用这个关键词搜索。虽然我认为这只是个炒作的概念,不过不得不承认ajax叫起来要方便多了。所以ajax的意思我就不详细解释了。写这个教程的起因很简单:经过一段时间的ajax学习,有一些体会,并且越发认识到ajax技术的强大,所以决定记录下来,顺便也是对自己思路的整理。

    日期 2023-06-12 10:48:40     
  • PHP网页游戏学习之Xnova(ogame)源码解读(四)

    PHP网页游戏学习之Xnova(ogame)源码解读(四)

    五、用户登录(login.php) 在开始的时候,我们说过游戏的入口是index.php文件;我们已经安装好了,自然转向登录流程,开始看。 前面照例是一段我们前进介绍过的代码,我们就不再详细讲了;不同的是使用的语言文件是login.mo,还有一个LOGIN的常量。如下 define("INSIDE",true); define("INSTALL",false); define("LOGIN",t

    日期 2023-06-12 10:48:40     
  • PHP网页游戏学习之Xnova(ogame)源码解读(十四)

    PHP网页游戏学习之Xnova(ogame)源码解读(十四)

    十七、资源更新(PlanetResourceUpdate.php页面) 前面基本把重要的功能讲解完了,这章节我们分析重要的一个函数PlanetResourceUpdate,主要功能是更新资源、制造船舰和防御单位;代码很有条理,下面是详细的说明: 1.计算星球的最大存储空间,包括系统设置的浮动值 2.计算星球三种资源的产量和能量消耗总量,包括专家的加成 3.如果星球是月球,以上计算的产量和能量直接

    日期 2023-06-12 10:48:40     
  • JUC回顾之-ConcurrentHashMap源码解读及原理理解

    JUC回顾之-ConcurrentHashMap源码解读及原理理解

         ConcurrentHashMap结构图如下:    ConcurrentHashMap实现类图如下:   segment的结构图如下:         package concurrentMy.juc_collections.hashMap; import java.io.IO

    日期 2023-06-12 10:48:40     
  • Spring容器启动流程(源码解读)

    Spring容器启动流程(源码解读)

    (本文基于 Spring 的 5.1.6.RELEASE 版本) Spring的启动流程可以归纳为三个步骤: 1、初始化Spring容器,注册内置的BeanPostProcessor的BeanDefinition到容器中 2、将配置类的BeanDefinition注册到容器中 3、调用refresh()方法刷新容器 一、前言 Spring Framework 是 Java 语言中影响最为深远

    日期 2023-06-12 10:48:40     
  • 巡风xunfeng源码解读

    巡风xunfeng源码解读

    一、源码地址 https://github.com/ysrc/xunfeng 二、网络解读参考 vulscan 模块 https://blog.csdn.net/sojrs_sec/article/details/103368463 多个模块解读() https://www.cnblogs.com/zhengjim/category/1268135.html Aider.py

    日期 2023-06-12 10:48:40     
  • SparkSubmit源码解读记录

    SparkSubmit源码解读记录

    SparkSubmit类(伴生对象) 根据提交脚本定位到org.apache.spark.deploy.SparkSubmit bin/spark-submit \ --class org.apache.spark.ex

    日期 2023-06-12 10:48:40     
  • Java源码解读--CopyOnWriteList写时复制集合容器

    Java源码解读--CopyOnWriteList写时复制集合容器

    加元素时复制,适用于写少读多的场景。 读的时候不加锁,写的时候加锁。Vector的实现是不论读写都加锁。 写的时候复制出一个新的数组,将新添加的元素添加进新的数组,然后将引用指向新的数组地址,因此写的时候也就是添加修改元素的时候效率比较低下。 写时复制实现流程图解&#x

    日期 2023-06-12 10:48:40     
  • Zuul网关原理及源码解读(草稿版)

    Zuul网关原理及源码解读(草稿版)

    网关的本质就是一系列的过滤器Filter。 断点调试快捷键:F5进入方法,F6下一行,F7跳出方法,F8下一个断点。这些是活的,每个I

    日期 2023-06-12 10:48:40     
  • spring-session源码解读-4

    spring-session源码解读-4

    spring-session实现了HttpServletRequest的子类–SessionRepositoryRequestWrapper,由它覆盖getSession方法,将由web容器处理的逻辑接管过来。 public HttpSession getSession(boolean create) { HttpSessionWrapper currentSession = getCurr

    日期 2023-06-12 10:48:40     
  • ZLMediaKit 服务器源码解读---RTSP推流拉流

    ZLMediaKit 服务器源码解读---RTSP推流拉流

    RTSP推流 1、数据解析过程 数据都会通过回调的方式到达RtspSession类(会话)的onRecv函数 先给出类的继承关系: class RtspSession: public TcpSession, public RtspSplitter, public RtpReceiver , public Me

    日期 2023-06-12 10:48:40     
  • JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读

    JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读

    JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读 概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲到JVMTIAgent(C实现的),因为javaagent的运行还是依赖于一个特殊的

    日期 2023-06-12 10:48:40