Go语言
文章平均质量分 77
luo2pei4
-
展开
-
MinIO对象读写中的分布式锁
minio的分布式锁解析原创 2023-12-04 22:31:01 · 363 阅读 · 0 评论 -
在VSCode环境下用dlv工具的attach模式远程调试在运行中的服务
用dlv工具的attach模式远程调试在运行中的服务原创 2022-07-17 23:53:23 · 2268 阅读 · 0 评论 -
Golang中的单元测试和基准测试实践
golang本身提供了简单但功能强大的单元测试和基准测试。本文用一个查找重复次数最多的字符的函数为测试对象,对单元测试和基准测试做一个简单的实践。查找重复次数最多的字符type charCounter struct { char rune counter int}func FindMostRepeatedChar(strSlice []rune) (returnSlice []*charCounter, err error) { // 传入切片为nil时,返回异常 if ..原创 2021-10-03 09:59:32 · 314 阅读 · 0 评论 -
Golang的chan阻塞测试
在《The way to go - 14.2 协程间的信道》教程中看到了关于chan阻塞的相关内容,自己写代码做了一些验证。贴之前先复习一下知识点。以下是我自己的总结,如果不对还请网友指正。1,golang的通道(chan)可分为不带缓存的通道和带缓存的通道。用make函数创建通道的时候,如果不指定缓存大小,创建的就是不带缓存的通道。2,通道是一个类型化消息队列。这句话有两个意思,一是在创建通道时,需要指定通道中传输什么类型的数据。例如var c chan int,这句代码声明了一个名字叫c的通原创 2021-09-30 23:54:44 · 1387 阅读 · 0 评论 -
TiDB Server的main函数解析
1. 进入main函数前进入main函数前,会先执行config包的init函数。init函数中会调用initByLDFlags函数,initByLDFlags函数中有两个主要处理,如下面的代码所示。globalConf是一个原子值类型的变量,位于config包中。func initByLDFlags(edition, checkBeforeDropLDFlag string) { if edition != versioninfo.CommunityEdition { defaultCo.原创 2021-01-13 21:50:01 · 282 阅读 · 0 评论 -
基于Golong自动生成xml文件对应的struct文件的工具
通过读入xml文件,然后自动生成对应的struct,并保存再指定文件中。源代码大链接在下面,主要是xmlLoader.go和xmlNodeStructCreator.go两个文件。xmlLoader.go通过读入xml文件,将xml解析为一个链式结构数据,xmlNodeStructCreator.go通过递归的方式从链式结构数据中提取xml的节点信息并生成xml对应的结构体文件。这个做得比较粗糙,特别是结构体中field的命名,直接用节点的名字来命名的,有兴趣的朋友可以自己down下来改改。原创 2020-11-23 11:09:16 · 757 阅读 · 0 评论 -
TiDB启动(一)
TiDB的启动过程比较复杂,这里主要记录从runServer函数的启动过程,包括服务启动和初始化客户端连接。main包的createServer函数调用server包的NewServer函数创建server结构体的实例,NewServer函数中创建了网络监听(net.Listen)。main包的runServer函数用于整个TiDB的启动。该函数调用了server包的Run函数。具体如下:funcrunServer(){err:=svr.Run()terror....原创 2020-11-22 12:51:34 · 819 阅读 · 0 评论 -
GoLang解析XML,非Unmarshal方法
看网上好多都是用的Unmarshal函数,但是对于有些不知道节点数量的情况,Unmarshal函数还是无法很好完成。所以自己写了个方法,在这里记下来,免得忘了。package mainimport ( "bufio" "encoding/xml" "errors" "fmt" "io" "io/ioutil" "os")// stack 深度为10的栈,用来压入XML的标签名称。type stack struct { MaxTop int // 栈顶最大值原创 2020-11-01 20:02:15 · 1339 阅读 · 0 评论