源码

Redisson公平锁的源码解读分享

目录 前言 公平锁 加锁 解锁 总结 前言 我在上一篇文章聊了Redisson的分布式锁,这次继续来聊聊Redisson的公平锁。下面是官方原话: 它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程。所有请求线程会在一个队列中排队,当某个线程出现宕机时,R »

Redisson源码解读-公平锁

前言 我在上一篇文章聊了Redisson的可重入锁,这次继续来聊聊Redisson的公平锁。下面是官方原话: 它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程。所有请求线程会在一个队列中排队,当某个线程出现宕机时,Redisson会等待5秒后继续下一个线程,也就是说 ... »

konghuanxi

React状态更新的优先级机制源码解析

目录 为什么需要优先级 同步模式下的react运行时 如何运用优先级机制优化react运行时 确定不同场景下的调度优先级 lane优先级 event优先级 scheduler优先级 优先级间的转换 优先级机制如何设计 设计思路 合并赛道 释放赛道 找出最高优先级赛道 快速定位赛道索引 判 »

[数据结构-线性表1.2] 链表与 LinkedList(.NET 源码学习)

[数据结构-线性表1.2] 链表与 LinkedList<T> 【注:本篇文章源码内容较少,分析度较浅,请酌情选择阅读】 关键词:链表(数据结构) C#中的链表(源码) 可空类型与特性(底层原理 源码) 迭代器的实现(底层原理) 接口IEqualityCompare<T>(源码) 相等判断(底层原理 ... »

React源码state计算流程和优先级实例解析

目录 setState执行之后会发生什么 根据组件实例获取其 Fiber 节点 创建update对象 将Update对象关联到Fiber节点的updateQueue属性 发起调度 processUpdateQueue做了什么 变量解释 构造本轮更新的 updateQueue 更新 workI »

ThreadPoolExecutor参数含义及源码执行流程详解

目录 背景 典型回答 考点分析 知识拓展 execute() VS submit() 线程池的拒绝策略 自定义拒绝策略 ThreadPoolExecutor 扩展 小结 背景 线程池是为了避免线程频繁的创建和销毁带来的性能消耗,而建立的一种池化技术,它是把已创建的线程放入“池”中,当 »

源码级深度理解 Java SPI

作者:vivo 互联网服务器团队- Zhang Peng SPI 是一种用于动态加载服务的机制。它的核心思想就是解耦,属于典型的微内核架构模式。SPI 在 Java 世界应用非常广泛,如:Dubbo、Spring Boot 等框架。本文从源码入手分析,深入探讨 Java SPI 的特性、原理,以及在 ... »

vivotech

Redisson分布式锁的源码解读分享

目录 前言 前置知识 分布式锁的思考 Redis订阅/发布机制 Redisson 加锁 订阅 解锁 看门狗 前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一 »

Redisson源码解读-分布式锁

前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。 前置知识 在讲Redisson,咱们先来聊聊分布式锁的特点以及Redis的发布/订阅机制, ... »

konghuanxi

Golang源码分析之golang/sync之singleflight

目录 1.背景 1.1. 项目介绍 1.2.使用方法 2.源码分析 2.1.项目结构 2.2.数据结构 2.3.API代码流程 3.总结 1.背景 1.1. 项目介绍 golang/sync库拓展了官方自带的sync库,提供了errgroup、semaphore、single »

React Refs 的使用forwardRef 源码示例解析

目录 三种使用方式 1. String Refs 2. 回调 Refs 3. createRef 两种使用目的 Refs 转发 createRef 源码 forwardRef 源码 三种使用方式 React 提供了 Refs,帮助我们访问 DOM 节点或在 render 方法中 »

Vue源码学习记录之手写vm.$mount方法

目录 一、概述 二、使用方式 三、完整版vm.$mount的实现原理 四、只包含运行时版本的vm.$mount的实现原理 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一、概述 在我们开发中,经常要用到Vue.extend创建出Vue的子类来构造函数,通过new 得到 »

Python实现GUI计算器(附源码)

目录 效果 源码 效果 可执行正常加减乘除相关运算,源码已贴,自行测试。 源码 # coding=gbk &quot;&quot;&quot; 作者:川川 @时间 : 2022/11/6 3:10 &quot;&quot;&quot; from tkinter import * calc = Tk() calc.tit »

我看谁还不懂多线程之间的通信+基础入门+实战教程+详细介绍+附源码

一、多线程之间的通信(Java版本) 1、多线程概念介绍 多线程概念 在我们的程序层面来说,多线程通常是在每个进程中执行的,相应的附和我们常说的线程与进程之间的关系。线程与进程的关系:线程可以说是进程的儿子,一个进程可以有多个线程。但是对于线程来说,只属于一个进程。再说说进程,每个进程的有一个主线程 ... »

Java CopyOnWriteArrayList源码超详细分析

目录 一、概述 二、类图 三、核心方法 1.add() 2.set() 3.remove() 4.get() 5.size() 四、总结 一、概述 CopyOnWriteArrayList是基于写时复制技术实现的,适用于读多写少场景下的线程安全的并发容器。读操作永远不会加锁,读读、读 »

React diff算法超详细讲解

目录 diff 算法介绍 diff 策略 tree diff component diff element diff 结合源码看 diff 整体流程 新内容为 REACT_ELEMENT_TYPE 新内容为纯文本类型 新内容为数组类型 diff 后的渲染 上一章中 react 的 r »

React commit源码分析详解

目录 总览 commitBeforeMutationEffects commitMutationEffects 插入 dom 节点 获取父节点及插入位置 判断当前节点是否为单节点 在对应位置插入节点 更新 dom 节点 更新 HostComponent 更新 HostText 删除 do »