上一页 1 ··· 8 9 10 11 12 13 14 下一页
摘要: sync.Once sync.Once 因为Once实在是太常用了, 所以今天就对Once的源代码做一个简单的分析 package sync import ( "sync/atomic" ) type Once struct { done uint32 // 标识是否已运行 m Mutex } fu 阅读全文
posted @ 2024-03-28 04:28 pDJJq 阅读(26) 评论(0) 推荐(0)
摘要: go: embed ​go:embed​ 是 Go 语言在其 1.16 版本中引入的一个新功能,它允许开发者在编译时将文件或文件夹嵌入到 Go 程序中。这样做可以简化资源文件的分发,因为它们会被编译到可执行文件里,避免了在运行时需要处理文件路径和分发额外文件的问题。 要使用 go:embed​,你需 阅读全文
posted @ 2024-03-27 20:09 pDJJq 阅读(89) 评论(0) 推荐(0)
摘要: Go: bytebufferpool源码分析 项目地址: https://github.com/valyala/bytebufferpool 简介 bytebufferpool被广泛用于对于字节流的读取, 在gnet, fasthttp 等网络库中都有大量使用. 本文将探究其实现. 结构 项目主要分 阅读全文
posted @ 2024-03-26 16:26 pDJJq 阅读(63) 评论(0) 推荐(0)
摘要: go-buffer-pool go-buffer-pool package pool import ( "math" "math/bits" "sync" ) // GlobalPool is a static Pool for reusing byteslices of various sizes 阅读全文
posted @ 2024-03-26 16:24 pDJJq 阅读(24) 评论(0) 推荐(0)
摘要: MySQL中的MVCC 阅读全文
posted @ 2024-03-25 11:32 pDJJq 阅读(33) 评论(0) 推荐(0)
摘要: 跳表与二叉搜索树 跳表与二叉搜索树 本文探索跳表与二叉搜索树的一些相似之处, 以此来加深对跳表结构的深入理解 适用场景 跳表在Redis中有比较广泛的使用Redis 技术要点 我们可以认定跳表本质上就是一个平衡二叉搜索树, 跳表的目标是为了能够快速的定位key所在的index 所以可以认定的是跳表的 阅读全文
posted @ 2024-03-24 15:40 pDJJq 阅读(35) 评论(0) 推荐(0)
摘要: 指数退避算法用于自旋锁,尝试CAS获取锁失败后会等待递增的时间片再次尝试,以减少竞争。backoff值指数递增,等待时间随之增加,提高尝试成功率。 阅读全文
posted @ 2024-03-24 15:38 pDJJq 阅读(64) 评论(0) 推荐(0)
摘要: 该文章介绍了如何实现无锁队列,通过使用CAS操作和指针相等判断来确保并发安全。无锁队列适用于需要高效处理并发情况下的队列操作,具有较高的性能和并发性。 阅读全文
posted @ 2024-03-24 15:36 pDJJq 阅读(338) 评论(0) 推荐(0)
摘要: 本文探讨了PR(Pull Request)和MR(Merge Request)的区别,PR源自GitHub,适用于向自己没有权限的项目提交合并请求;MR源自GitLab,可以指定源仓库、源分支、目标仓库和目标分支,更具体直观。建议在开源项目中使用PR,在公司内部使用GitLab时可以使用MR。 阅读全文
posted @ 2024-03-24 15:35 pDJJq 阅读(183) 评论(0) 推荐(0)
摘要: 本文介绍了在 Go 语言中使用反射时需要注意的一些问题,包括针对结构体和指针调用方法的差异、通过反射调用方法时的规则、指针与实例的区别以及为什么应该使用指针而不是实例等关键内容。另外,还提到了在反射中使用指针无法修改值的情况。 阅读全文
posted @ 2024-03-24 15:32 pDJJq 阅读(15) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 下一页