源码解析

React DOM-diff 节点源码解析

目录 前言 单节点 key相同,类型相同 key不同,类型相同 key相同,类型不同 多节点 第一次遍历 第二次遍历 第三次遍历 总结 前言 这篇文章帮助大家梳理一下React中的dom-diff。在React中,根据新的虚拟DOM的不同,分为单节点(指的是同层级只有一个子节 »

slate源码解析(二)- 基本框架与数据模型

源码架构 首先来看下最核心的slate包下的目录: 可以看到,作为一个开源富文本库,其源码是相当之少。在第一篇文章中说过,Slate没有任何开箱即用的功能,只提供给开发者用于构建富文本所需的最基本的一套schema及操作API。因此源码的体量自然就要少许多。 我们来预览上图中各个目录下文件所负责的 »

geek1116

slate源码解析(一)- 序言

笔者从大学时期就开始接触的前端,在刚去实习的时候就被导师安排去做内网的一个小富文本工具。之后从毕业后干的第一份工作游戏客户端,到现在做着可视化相关的前端工作,都有在做富文本相关的内容。可以说是和**富文本编辑器(Rich Text Editor)**有着不解之缘。 WYSIWYG 如无特别指出,该系 ... »

java开发非公平锁不可打断源码示例解析

目录 非公平锁不可打断调试代码 非公平锁不可打断加锁源码 lock acquire tryAcquire:尝试加锁&判断锁重入 acquireQueued:加入同步队列 shouldParkAfterFailedAcquire:判断是否需要park parkAndCheckInterr »

Android源码解析onResume方法中获取不到View宽高

目录 前言 问题1、为什么onCreate和onResume中获取不到view的宽高? 问题2、为什么View.post为什么可以获取View宽高? 结论 前言 有一个经典的问题,我们在Activity的onCreate中可以获取View的宽高吗?onResume中呢? 对于这类八股问题 »

Golang HTTP编程及源码解析

1、网络基础 基本TCP客户-服务器程序Socket编程流程如如下图所示。 TCP服务器绑定到特定端口并阻塞监听客户端端连接, TCP客户端则通过IP+端口向服务器发起请求,客户-服务器建立连接之后就能开始进行数据传输。 Golang的TCP编程也是基于上述流程的。 2、Golang HTTP编程 ... »

amos01 go

vue2.x中keep-alive源码解析(实例代码)

目录 一、前世尘缘 二、keep-alive内置组件 1.缓存动态组件 2.缓存路由组件 3.原理解析 三、LRU算法 一、前世尘缘 vue中内置组件keep-alive的设计思想源于HTTP中的Keep-Alive模式,Keep-Alive模式避免频繁创建、销毁链接,允许多个请求和 »

[​DuckDB] 多核算子并行的源码解析

DuckDB 是近年来颇受关注的OLAP数据库,号称是OLAP领域的SQLite,以精巧简单,性能优异而著称。笔者前段时间在调研Doris的Pipeline的算子并行方案,而DuckDB基于论文《Morsel-Driven Parallelism: A NUMA-Aware Query Evalua ... »

axios拦截器工作方式及原理源码解析

目录 axios 拦截器的配置方式 use() 方法的定义 拦截器如何执行 拦截器回调方法的添加顺序 同步执行请求拦截器(顺序执行) 异步执行请求拦截器(同时执行) Q&A 拦截器是如何工作的 拦截器的执行顺序 同步&异步 axios 拦截器的配置方式 本文所用 »

Vue.extend和VueComponent的关系源码解析

目录 前言 需求分析 Vue.extend 编程式的使用组件 源码分析 前言 写Vue.js已经3年了吧,对Vue.extend全局方法的了解也就停留在了解啦,一直抱着不用就不学的思想,造成了一次又一次的错过~~~ 直到最近,才通过公司10年秃头少年的代码,才知道错过Vue.exte »

Java AQS(AbstractQueuedSynchronizer)源码解析

目录 AQS概要 排他获取锁 支持中断的获取锁 支持超时时间的获取锁功能 共享锁获取 锁的释放 取消获取锁 总结 AbstractQueuedSynchronizer被称为队列同步器,简称为大家熟知的AQS,这个类可以称作concurrent包的基础,该类提供了同步的基本功能。该类包括如下几个 »

ReentrantLock介绍及源码解析

ReentrantLock介绍及源码解析 一、ReentrantLock介绍 ReentrantLock是JUC包下的一个并发工具类,可以通过他显示的加锁(lock)和释放锁(unlock)来实现线程的安全访问,ReentrantLock还可以实现公平锁和非公平锁,并且其与synchronized »

webpack自动刷新浏览器源码解析

目录 配置webpack热更新模式 源码解析 开启本地服务 监听编译完成 监听文件修改 向浏览器中插入客户端代码 在我们日常的前端开发过程中,在编辑器里只需要保存代码,浏览器就会自动刷新当前页面。这个过程被称为热更新。 其实实现这一功能需要两步: 监听代码的变化 自动刷新浏览器 下 »

React Fiber构建源码解析

目录 引言 一. Fiber是什么 二. FiberRoot fiberRoot生成 fiberRoot类 三. RootFiber rootFiber生成 createHostRootFiber FiberNode flags lane initializeUpdateQueue 四. »

React Fiber构建beginWork源码解析

目录 引言 一. scheduleUpdateOnFiber 二. performSyncWorkOnRoot renderRootSync workLoopSync performUnitOfWork 三. beginWork updateHostRoot reconcileChildre »

SpringBoot HikariCP配置项及源码解析

目录 前言 为什么HikariCP性能高 常用配置项 autoCommit connectionTimeout idleTimeout maxLifetime connectionTestQuery minimumIdle maximumPoolSize HikariCP架构 源码解析 H »

Android Framework原理Binder驱动源码解析

目录 引言 1 system_server和service_manager的关系 2 传统IPC与Binder之间的区别 3 物理内存和虚拟内存 4 Binder驱动源码分析 4.1 binder_init 4.2 binder_open 4.2 binder_mmap 引言 相信 »

Java CountDownLatch线程同步源码硬核解析

目录 场景 CountDownLatch 代码demo 场景 有时间在主线程中开启了多线程后,主线程需要等所有线程执行完毕才能return,这个时候就需要在return前拦一下,直到所有线程执行完毕。 或者,某些场景下需要多个线程同一时间执行,需要在起步的时候统一拦一下,然后收到通知再运 »

go微服务PolarisMesh源码解析服务端启动流程

目录 前话 前期准备 正题 polaris-server.yaml 认识 源码组织 Bootstrap 功能模块启用 APIServer 模块初始化 数据缓存模块初始化 资源鉴权模块初始化 命名空间模块模块初始化 服务注册发现、服务治理模块初始化 配置中心模块初始化 前话 pola »