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

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

原创 【Go万字洗髓经】Golang内存模型与内存分配管理
对Golang的内存模型和内存分配与管理进行了全面梳理,探究了一些核心组件,如mcache、mheap、mcentral,并且从GMP视角出发,研究了内存模型,借助对象分配流程,来梳理巩固内存模型的理解和概念。
2025-03-10 16:17:57
18885
1
原创 使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能
使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能
2025-03-30 18:38:49
3742
原创 Ollama+Langchaingo+Gin开发本地LLM简单应用
我的第一篇与llm有关的博客,使用ollama+langchaingo+gin快速构建简单应用。
2025-03-30 17:45:17
3782
原创 【Go | 从0实现简单分布式缓存】-6:GeeCache总结
总结之前 GoCache 的实现过程,这是一个从零开始用 Go 语言实现的分布式缓存系统。详细介绍了缓存淘汰策略LRU、并发控制、一致性哈希算法、分布式节点通信、缓存击穿的解决方案以及优化方向。
2025-03-11 22:53:42
8657
原创 【GoTeams】-5:引入Docker
一直对docker的实战有点少,并且随着hub被封之后,也有点惧怕用docker这些,比如写docker-compose进行容器编排,写dockerfile文件编译镜像,编译go程序为可执行文件等,通过本次实战,熟悉了不少,也对整个部署运营有了了解,实战大于学习,之前看过再多的知识,不如自己实战效果更好一些,学习和收获会更大。勇于挑战才能进步。
2025-03-08 14:45:19
11019
原创 【GoTeams】-3:构建api、重构错误码
把系统构建api层,前端发起请求将通过api层,api又内部调用gRPC服务,使系统安全性和可拓展性都增加了,然后还进行了重构错误码。
2025-03-07 15:41:24
1064
原创 【GoTeams】-2:项目基础搭建(下)
本篇文章学习到了很多,比如gRPC的服务器生成、服务生成、服务注册,以及如何用闭包进行优雅的关闭,第一次感受到以前学过的知识串起来的感觉!收获颇多的一次代码实战!
2025-03-06 21:43:48
9286
原创 【Go | 从0实现简单分布式缓存】-4:使用singleflight防止缓存击穿
主要介绍如何使用singlefligth防止缓存击穿,途中涉及到了一些经典的函数,比如协程的wg.WaitGroup()函数应该在协程之间不需要消息传递的时候非常适用,还有对应的匿名函数的作用原理。
2025-02-26 11:24:21
1088
原创 【Go | 从0实现简单分布式缓存】-3:分布式节点通信
本节内容主要是完成了分布式节点通信,但是会随之而来对应的问题“缓存击穿”,所以我们需要进一步完善项目。
2025-02-25 20:36:23
930
原创 【Gin-Web】Bluebell社区项目梳理5:投票功能分析与实现
主要梳理投票功能流程与实现、Redis中ZSet有序集合的相关操作知识点。
2025-02-22 22:01:40
3681
原创 【Gin-Web】Bluebell社区项目梳理3:社区相关接口开发
梳理项目的社区接口代码情况,以及Go语言中关于“值”类型和“引用”类型的相关知识。
2025-02-22 00:08:35
956
原创 【Gin-Web】Bluebell社区项目梳理1:注册业务、登录业务流程及代码
分析和梳理了Gin的Web项目Bluebell的注册、登录两个业务的流程。
2025-02-21 21:46:51
1032
原创 【C++高并发服务器WebServer】-18:事件处理模式与线程池
对Reactor、Proactor、同步IO模拟Proactor模式进行了概述介绍。
2025-02-10 13:11:06
4286
原创 【C++高并发服务器WebServer】-17:阻塞/非阻塞和同步/异步、五种IO模型、Web服务器
陈硕大神说过一句话:处理IO的时候,阻塞和非阻塞都是同步IO(都需要我们用户自己去操作数据),只有使用了特殊的API才是异步IO
2025-02-09 22:48:11
11696
1
原创 【C++高并发服务器WebServer】-16:UDP简单实现
指向sockaddr结构的指针,该结构包含了目的地址信息。:指向变量的指针,该变量在调用前应初始化为 src_addr 结构的长度。调用成功后,该变量将被更新为实际接收到的地址的长度。:指向 sockaddr 结构的指针,该结构用于存储发送方的地址信息。也可以设置特定的标志来改变发送的行为,如MSG_DONTROUTE(绕过路由器)。也可以设置特定的标志来改变接收的行为,如 MSG_DONTWAIT(非阻塞接收)。这个长度应该与dest_addr指向的结构的大小相匹配。:要发送的数据的长度(字节数)。
2025-02-09 21:19:20
6837
原创 【C++高并发服务器WebServer】-15:poll、epoll详解及实现
本文主要介绍了poll和epoll的实现,其中重点分析了epoll的函数、工作模式等。
2025-02-09 20:58:30
5171
原创 【C++高并发服务器WebServer】-13:多线程服务器开发
探讨多线程服务器开发的关键技术,并详细分析了 TCP 状态转换过程。同时,文章重点讨论了端口复用技术,通过 SO_REUSEADDR 和 SO_REUSEPORT 选项的设置,解决了服务器快速重启和端口冲突的问题。
2025-02-08 23:29:52
11631
原创 【C++高并发服务器WebServer】-12:TCP详解及实现
欢迎来到Golinie的频道,这里是C++并发服务器专题。本篇文章主要围绕TCP通信展开,详细介绍了TCP通信流程以及关键的套接字函数,包括socket()、bind()、listen()、accept()和connect()。同时,通过server端和client端的代码示例,展示了并发服务器的实现过程。此外,还深入探讨了TCP三次握手、滑动窗口机制以及四次挥手过程,最后介绍了多进程并发服务器的设计思路。
2025-02-08 21:18:35
11688
原创 【Linux网络编程】谈谈网络编程中的select、poll、epoll、Reactor、Proactor模型(下)
这个模型也叫做基于线程架构的模型。
2025-02-07 18:33:50
5505
原创 【Linux网络编程】谈谈网络编程中的select、poll、epoll、Reactor、Proactor模型(上)
本文主要介绍BIO、NIO、IO多路复用(第一版:select、poll)。
2025-02-07 04:30:00
21652
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人