ShardingSphere源码解析
根据官网的介绍,SS去连接数据库的时候有2种模式,一种是内存限制模式,一种是连接限制模式内存限制模式:使用此模式的前提是,ShardingSphere对一次操作所耗费的数据库连接数量不做限制。 如果实际执行的SQL需要对某数据库实例中的200张表做操作,则对每张表创建一个新的数据库连接,并通过多...
2024-01-10lodash源码的getTag
为啥要单独判断undifined和null不需要单独判断用toString也有呀这不是多次一举吗回答MDN 上有一段类似的实现:typeof - MDN作为一个 star 数逼近 50k 的项目,考虑的肯定要比较全。因为要兼容 IE。IE7 以前 null、undefined 你要直接 toString 的话结果都是 '[object Object]'。...
2024-01-10openjdk源码编译踩坑
1. 在ubuntu18.04下编译openjdk源码1.1 apt-get 无法安装libx11-dev, 换成了aptitude,结果还是安装不成功。并且发现aptitude使用不习惯,要换回apt-get,问题就出在了这里。由于需要自己下载.deb报,这时在便在搜索引擎中去搜索,导向了一些网址,然后再去下载某些deb.安装之后却发现apt还是有某些兼容问题,提示...
2024-01-10Redis延时任务源码分析
我们先了解延迟任务的存储,主要分两块1.延时数据存在queue:queue:delayed 中 2.原始的对列消费表,会存一份数据,这里的状态是 pending,证明未处理 关键的一步就是,如何定时任务的逻辑,应用到正常的队列中消费了,直接上代码每一次出栈调度,都先执行一次migrate,功能是将当前已经过了时...
2024-01-10javathreadLocal源码探究
有些人对使用ThreadLocal的使用不是很理解,这里还要从原理讲起。我们可以在其中找到许多方法,ThreadLocal可以加名称后面加入一些方法,然后结合在一起使用,可以把它看成方法的汇集。下面我们就以ThreadLocalMap使用为例,对ThreadLocal源码进行探索和分析。1.ThreadLocal的内部结构ThreadLocal并不维护ThreadLoca...
2024-01-10SpringCloudOpenFeign源码解析
0. 入门demo此代码是 OpenFeign 的示例代码,获取一个Github 仓库的所有贡献者,创建一个issue。 建议由此开始 DEBUG 调试阅读源码interface GitHub { @RequestLine("GET /repos/{owner}/{repo}/contributors") List<contributor> contributors(@Param("owner") String owner, @Param("repo") String repo); @RequestL...
2024-01-10柔性数组(Redis源码学习)
柔性数组(Redis源码学习)1. 问题背景在阅读Redis源码中的字符串有如下结构,在sizeof(struct sdshdr)得到结果为8,在后续内存申请和计算中也用到。其实在工作中有遇到过这种 struct结构 + 应用数据的情况,但没有意识到自己使用的是柔性数组,在学习阅读Redis代码中,遇到该方法,就特总结记录之。/* * 类...
2024-01-10FlinkSQL源码阅读schema管理
在Flink SQL中, 元数据的管理分为三层: catalog-> database-> table,我们知道Flink SQL是依托calcite框架来进行SQL执行树生产,校验,优化等等, 所以本文讲介绍FlinkSQL是如何来结合Calcite来进行元数据管理的.calcite开放的接口public interface Schema { Table getTable(String name); Schema getSubSchema(String name); ....}如...
2024-01-10redis5.0.7源码阅读——压缩列表ziplist
redis中压缩列表ziplist相关的文件为:ziplist.h与ziplist.c压缩列表是redis专门开发出来为了节约内存的内存编码数据结构。源码中关于压缩列表介绍的注释也写得比较详细。一、数据结构压缩列表的整体结构如下(借用redis源码注释):1 /*2 <zlbytes> <zltail> <zllen> <entry> <entry> ... <entry> <zlend>3 */各个部分的...
2024-01-10redis5.0.7源码阅读——跳跃表skiplist
redis中并没有专门给跳跃表两个文件。在5.0.7的版本中,结构体的声明与定义、接口的声明在server.h中,接口的定义在t_zset.c中,所有开头为zsl的函数。一、数据结构单个节点:typedef struct zskiplistNode { //key,唯一 sds ele; //分值,可重复 double score; //后退指针 struct zskiplistNode *backward; ...
2024-01-10Elasticsearch7.5.0源码编译
环境及工具JDK12Gradle5.6.2GIT源码及预处理到github将代码clone下来,可以根据自己的需求来获取版本,例如 git checkout v7.5.0提前下载gradle5.6.2 zip文件 从https://services.gradle.org/distributions/gradle-5.6.2-all.zipcopy gradle-5.6.2-all.zip 到C:UsersusernameDocumentsGitHubelasticsearchgradlewrapper 文件...
2024-01-10【Java】JDK源码分析-LinkedHashMap
首页专栏java文章详情0JDK源码分析-LinkedHashMapWriteOnRead发布于 今天 06:42 1. 概述前文「JDK源码分析-HashMap(1)」分析了 HashMap 主要方法的实现原理(其他问题以后分析),本文分析下 LinkedHashMap。先看一下 LinkedHashMap 的类继承结构图:可以看到 LinkedHashMap 继承了 HashMap。我们知道 HashMap 是无序...
2024-01-10ShardingSphere源码解析(五)---结果归并
归并引擎看起来还是挺复杂的,ShardingSphere支持的结果归并从功能上分为遍历、排序、分组、分页和聚合5种类型,它们是组合而非互斥的关系。 从结构划分,可分为流式归并、内存归并和装饰者归并。流式归并和内存归并是互斥的,装饰者归并可以在流式归并和内存归并之上做进一步的处理。我们...
2024-01-10SpringMVC源码解读之HandlerMapping
概述对于Web开发者,MVC模型是大家再熟悉不过的了,SpringMVC中,满足条件的请求进入到负责请求分发的DispatcherServlet,DispatcherServlet根据请求url到控制器的映射(HandlerMapping中保存),HandlerMapping最终返回HandlerExecutionChain,其中包含了具体的处理对象handler(也即我们编程时写的controller)以及一系列的拦...
2024-01-10浅析C++标准库元组(tuple)源码
一、什么是元组元组不是什么新鲜东西,在数学、python语言还有我们今天要说的C++都有元组。简单地说,元组就是一组东西,例如,在讲代数拓扑的时候,经常把拓扑空间X和其中一点x作为一个偶对(X, x),这其实就是个元组,点的坐标也可以看成一个元组。C++中的元组(tuple)是这个样子的:std::tuple...
2024-01-10ZipKin样本取值源码探析
在zipkin客户端采样率是通过Sampler类来完全控制,代码如下,package com.github.kristofa.brave;public abstract class Sampler { public static final Sampler ALWAYS_SAMPLE = new Sampler() { @Override public boolean isSampled(long traceId) { return true; } @Override p...
2024-01-10redis5.0.7源码阅读——双向链表
redis中动态字符串sds相关的文件为:adlist.h与adlist.c一、数据结构redis里定义的双向链表,与普通双向链表大致相同单个节点:1 typedef struct listNode {2 struct listNode *prev;3 struct listNode *next;4 void *value;5 } listNode;链表:1 typedef struct list {2 listNode *head;3 listNode *tail;...
2024-01-10面试官:简历上最好不要写Glide,不是问源码那么简单
这次来面试的是一个有着5年工作经验的小伙,截取了一段对话如下:面试官:我看你写到Glide,为什么用Glide,而不选择其它图片加载框架? 小伙:Glide 使用简单,链式调用,很方便,一直用这个。 面试官:有看过它的源码吗?跟其它图片框架相比有哪些优势? 小伙:没有,只是在项目中使用而已~ ...
2024-01-10Redis高并发防止秒杀超卖实战源码解决方案
目录1:解决思路2:添加 redis 常量3:添加 redis 配置类4:修改业务层1:秒杀业务逻辑层2:添加需要抢购的代金券3:抢购代金券5:postman 测试6:压力测试8:配置Lua9:修改业务层1:抢购代金券10:压力测试1:解决思路将活动写入 redis 中,通过 redis 自减指令扣除库存。2:添加 redis 常量commons/constant/Re...
2024-01-10阿里拍卖源码架构:从零手写pm-cli脚手架
前言脚手架其实是大多数前端都不陌生的东西,基于前面写过的两篇文章:前端源码架构在拍卖详情页上的探索一张页面引起的项目架构思考(rax+Typescript+hooks)大概呢,就是介绍下,目前我的几个项目页面的代码组织形式。用了几个项目后,发现也挺顺手,遂想着要不搞个 cli 工具,统一下...
2024-01-10通过源码角度看看AccessibilityService
简介AccessibilityService的设计初衷是为了辅助有身体缺陷的群体使用Android应用,它的设计贯穿着Android的控件树View, ViewGroup, ViewRootImpl体系。借助于system_server进程的中转,能够注册Accessibility事件的客户端可以具备通过system_server提供的Accessibility服务来实现监听、操作其它应用视图的功能。这个功能十分强...
2024-01-10BAT-增加JAVA环境变量(WIN764位) - 疯狂delphi
BAT-增加JAVA环境变量(WIN764位) 相关资料:1.http://www.jb51.net/article/52756.htm2.http://blog.csdn.net/fireghost57/article/details/21103329 1.新建一个TXT,写入以下内容。2.把TXT的名字改为BAT。3.修改BAT中的各JAVA路径。方法一: 1 @echo off 2 3 ::设定环境变量 4 echo 设定环境变量 5 echo...
2024-01-10delphi实现保存和读取图片的方法
本文实例讲述了delphi实现保存和读取图片的方法,是非常实用的技巧。分享给大家供大家参考。具体实现方法如下:首先引用jpeg1.显示图片:if OpenPictureDialog.Execute thenbegin img1.Picture.LoadFromFile(OpenPictureDialog.FileName); btnPicture.Text:=OpenPictureDialog.FileName;end;2.保存图片:varStream:TMemoryStream;Stream :...
2024-01-10Delphi中对时间操作方法汇总
一般来说在delphi中用于描述时间的有几种数据结构,而对时间的操作,实质上就是对这些结构的操作。TDateTime类型:Delphi中最常用的表示日期时间的数据类型TDateTime类型,和普通的整形数一样,你可以给日期定义一个日期型变量以便在程序中进行操作。TdateTime类型实质上是一个Double型的数,在Delphi中...
2024-01-10仅在特定计算机上的Delphi访问冲突
我在一个项目上创建计算机1,现在我想在计算机2上编辑并运行它。两台计算机都具有相同的操作系统和相同的Delphi版本。当我试图编译计算机2项目(不进行任何修改)的访问冲突出现了,虽然有计算机1.仅在特定计算机上的Delphi访问冲突这是一个FMX项目,并在System.Win.OleControls在发生访问冲突没有问...
2024-01-10delphi判断目录是否存在 [操作系统入门]
delphi7if not DirectoryExists(Edit1.Text) then 判断目录是否存在begin //判断目录不存在end;delphi 10.3uses FileCtrl;procedure TForm4.FormCreate(Sender: TObject);begin if not FileCtrl.DirectoryExists(‘C: emp‘) then showmessage(‘目录不存在‘);end; delphi 判断目录是否存在...
2024-01-10Delphi基本图像处理方法汇总
本文实例汇总了Delphi基本图像处理方法。分享给大家供大家参考。具体分析如下://浮雕procedure Emboss(SrcBmp,DestBmp:TBitmap;AzimuthChange:integer);overload;var i, j, Gray, Azimuthvalue, R, G, B: integer; SrcRGB, SrcRGB1, SrcRGB2, DestRGB: pRGBTriple;begin for i := 0 to SrcBmp.Height - 1 do begin...
2024-01-10delphi是什么语言
品牌型号:联想拯救者Y9000P系统:Windows 11Delphi被称为第四代计算机编程语言,是一款可视化软件开发工具。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。它使用了MicrosoftWindows图形用户界面的许多先进特...
2024-01-15