- 博客(75)
- 收藏
- 关注

原创 【Go万字洗髓经】Golang中sync.Mutex的单机锁:实现原理与底层源码
详细分析了sync.Mutex的核心原理,重点探讨了锁从自旋到阻塞的升级过程,以及自旋+CAS机制和饥饿模式的设计与实现。深入剖析了sync.Mutex的底层源码,包括Mutex结构的定义、全局常量的作用,以及Lock和Unlock方法的具体实现逻辑。文章还探讨了第一次CAS加锁成功的前提条件、竞态检测的实现,以及lockSlow和unlockSlow方法中的关键逻辑,如局部变量的作用、新旧状态值的替换、阻塞挂起机制以及饥饿模式下的特殊处理。
2025-03-26 22:17:33
60985
2

原创 【Go万字洗髓经】Golang内存模型与内存分配管理
对Golang的内存模型和内存分配与管理进行了全面梳理,探究了一些核心组件,如mcache、mheap、mcentral,并且从GMP视角出发,研究了内存模型,借助对象分配流程,来梳理巩固内存模型的理解和概念。
2025-03-10 16:17:57
73525
4
原创 已解决MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法
Mysql在使用过程中,可能会遇到登录问题,比如常见的错误信息:“Access denied for user ‘root’@‘localhost’ (using password: YES)”。本文将分析这个问题的可能原因,并提供解决方案。然后这个问题就可以解决了,推荐使用方案三。
2025-07-31 22:03:46
1963
原创 【Git】完美解决Git报错fatal: unable to access ‘https://github.com/.../.git‘:Recv failure Connection was res
【Git】完美解决Git报错fatal: unable to access ‘https://github.com/.../.git‘:Recv failure Connection was res:问题为:Git: fatal: unable to access "https://github.com/Golinie/Gitdemo.git/": Failed toconnect to github.com port 443 after 21070 ms: Could not connect to
2025-07-31 22:01:46
867
原创 Docker底层原理浅析 | namespace+cgroups+文件系统
namespace机制提供一种资源隔离和虚拟化特性,基于这些特性,PID、IPC、Network等系统资源不再是全局性的,而是某个特定的namespace下面,每个namespace下面的资源对于其他的namespace是不可见的。4、container模式:指定新创建的容器和已经存在的一个容器共享一个network namespace,而不是和宿主机进行共享,新创建的容器不会创建自己的网卡,配置自己的ip,而是和指定的一个容器共享ip+端口范围等。这样,容器就可以通过宿主机的网络接口访问外部网络。
2025-04-22 12:41:59
8845
原创 使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能
使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能
2025-03-30 18:38:49
39331
原创 Ollama+Langchaingo+Gin开发本地LLM简单应用
我的第一篇与llm有关的博客,使用ollama+langchaingo+gin快速构建简单应用。
2025-03-30 17:45:17
6111
原创 【Go | 从0实现简单分布式缓存】-6:GeeCache总结
总结之前 GoCache 的实现过程,这是一个从零开始用 Go 语言实现的分布式缓存系统。详细介绍了缓存淘汰策略LRU、并发控制、一致性哈希算法、分布式节点通信、缓存击穿的解决方案以及优化方向。
2025-03-11 22:53:42
36160
原创 【Go沉思录】朝花夕拾:探究 Go 接口型函数
接口型函数是Go语言中一种优雅的设计模式,它允许将普通函数转换为接口类型,从而实现接口。其核心是定义一个与接口方法签名相同的函数类型,并为该函数类型实现接口方法。这种模式使代码更加简洁灵活,既可以用函数直接实现接口(通过类型转换),也可以用结构体实现接口,适用于接口只有单一方法的场景。在标准库中,如net/http包的Handler和HandlerFunc就是典型应用,它使API设计更加灵活,提高了代码的可读性和可维护性。
2025-03-11 17:05:15
56208
原创 【GoTeams】-5:引入Docker
一直对docker的实战有点少,并且随着hub被封之后,也有点惧怕用docker这些,比如写docker-compose进行容器编排,写dockerfile文件编译镜像,编译go程序为可执行文件等,通过本次实战,熟悉了不少,也对整个部署运营有了了解,实战大于学习,之前看过再多的知识,不如自己实战效果更好一些,学习和收获会更大。勇于挑战才能进步。
2025-03-08 14:45:19
11121
原创 【GoTeams】-3:构建api、重构错误码
把系统构建api层,前端发起请求将通过api层,api又内部调用gRPC服务,使系统安全性和可拓展性都增加了,然后还进行了重构错误码。
2025-03-07 15:41:24
1157
原创 【GoTeams】-2:项目基础搭建(下)
本篇文章学习到了很多,比如gRPC的服务器生成、服务生成、服务注册,以及如何用闭包进行优雅的关闭,第一次感受到以前学过的知识串起来的感觉!收获颇多的一次代码实战!
2025-03-06 21:43:48
9381
原创 【Go | 从0实现简单分布式缓存】-4:使用singleflight防止缓存击穿
主要介绍如何使用singlefligth防止缓存击穿,途中涉及到了一些经典的函数,比如协程的wg.WaitGroup()函数应该在协程之间不需要消息传递的时候非常适用,还有对应的匿名函数的作用原理。
2025-02-26 11:24:21
1164
原创 【Go | 从0实现简单分布式缓存】-3:分布式节点通信
本节内容主要是完成了分布式节点通信,但是会随之而来对应的问题“缓存击穿”,所以我们需要进一步完善项目。
2025-02-25 20:36:23
995
原创 【Gin-Web】Bluebell社区项目梳理5:投票功能分析与实现
主要梳理投票功能流程与实现、Redis中ZSet有序集合的相关操作知识点。
2025-02-22 22:01:40
3771
原创 【Gin-Web】Bluebell社区项目梳理3:社区相关接口开发
梳理项目的社区接口代码情况,以及Go语言中关于“值”类型和“引用”类型的相关知识。
2025-02-22 00:08:35
992
原创 【Gin-Web】Bluebell社区项目梳理1:注册业务、登录业务流程及代码
分析和梳理了Gin的Web项目Bluebell的注册、登录两个业务的流程。
2025-02-21 21:46:51
1109
原创 【C++高并发服务器WebServer】-18:事件处理模式与线程池
对Reactor、Proactor、同步IO模拟Proactor模式进行了概述介绍。
2025-02-10 13:11:06
4376
原创 【C++高并发服务器WebServer】-17:阻塞/非阻塞和同步/异步、五种IO模型、Web服务器
陈硕大神说过一句话:处理IO的时候,阻塞和非阻塞都是同步IO(都需要我们用户自己去操作数据),只有使用了特殊的API才是异步IO
2025-02-09 22:48:11
11841
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人