Go教程技术文章
-
bitset内存压缩比达1/64而非1/8,因用[]uint64存储、每uint64存64位;New(n)中n是最大位索引+1;Set(i)为O(1)位运算,Test(i)越界返回false属未定义行为。471 收藏 -
conn.Read()不设超时会导致文件描述符泄漏,必须每次调用前用SetReadDeadline设置动态超时;写操作需读写分离+channel+WriteDeadline;启用SO_REUSEPORT防accept积压;禁用sync.Pool复用net.Conn或*os.File。471 收藏 -
从一个 Go 请求卡住的现场出发,演示如何通过最小复现、堆栈观察和锁路径梳理,定位 Mutex 忘记 Unlock 的问题,并用 defer 解锁和边界检查修复。471 收藏 -
Go 1.23 引入的 unique 包可以把重复值映射到可比较的 Handle,但它不是无上限缓存。本文用字符串标签场景说明 unique.Make 的比较方式、Handle 生命周期和不适合使用的业务边界。471 收藏 -
atomic.Uint64.Load 只保证单个数值的原子读取,不会把多个计数器自动组成业务快照。本文用 RWMutex 和 atomic.Pointer 说明组合一致性的实现取舍。471 收藏 -
Go 使用 net/textproto.ReadMIMEHeader 报非法字段时,按缺少冒号、字段名 token、字段值字节和首行缩进四个边界定位,并用原始转义与十六进制日志修复上游输入。471 收藏 -
围绕 Go errors.As 讲清自定义错误类型、错误包装链、Unwrap 和目标指针的配合方式,帮助业务层按稳定字段分层处理错误而不是比较易变的文本。471 收藏 -
Go 的 multipart.Writer 默认使用随机 boundary,直接把请求体拿去做接口签名时可能导致同样字段生成不同字节。本文用 SetBoundary 固定边界,说明字段顺序、Close、Content-Type 和原始 body 字节的签名边界,并给出排查清单。471 收藏 -
Golang · Go教程 | 1星期前 | 性能优化 · 并发编程 · 同步 · Go教程 · Go add sync/atomic CompareAndSwap 并发计数器 atomic.Int64 Load
Go atomic.Int64 适合维护并发请求数、在途任务数等单值状态。本文从普通自增的竞态出发,说明 Add、Load、Store 和 CompareAndSwap 的使用边界,以及零值、复制和复合条件判断的注意事项。471 收藏 -
简介 上一篇文章《Go 每日一库之 securecookie》中,我们介绍了 cookie。同时提到 cookie 有两个缺点,一是数据不宜过大,二是安全问题。session 是服务器端的存储方案,可以存储大量的数据,而且470 收藏 -
1. 前言 Golang context是Golang应用开发常用的并发控制技术,它与WaitGroup最大的不同点是context对于派生goroutine有更强的控制力,它可以控制多级的goroutine。 context翻译成中文是"上下文",即它可以控470 收藏 -
区块链开发用什么语言?通过本文你将使用Go语言开发自己的区块链(或者说用go语言搭建区块链)、理解哈希函数是如何保持区块链的完整性、掌握如何用Go语言编程创造并添加新的块、实现多个470 收藏 -
本文实例讲述了Golang算法问题之整数拆分实现方法。分享给大家供大家参考,具体如下: 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有6470 收藏 -
当进行和 Go语言有关讨论的时候,经常听到人们抛出 CSP 这个缩写。在某些环境下 CSP 经常被赞美成 Go语言成功的原因以及并发编程的“万能钥匙”。它让不知道 CSP 的人开始认为计算机科470 收藏 -
Go语言自带一套轻量级的协议编程模型,称为“goroutine”(协程)。协程是一种轻量级线程,由Go语言内部调度器管理,可在单个进程内并发地执行多个任务。协程的主要优势在于其开销小,启动、切换的成本较低,多个协程可共享一个线程,从而减轻了线程的负担,提高了CPU利用率。本文将针对该主题,分为以下几个方面进行介绍:协程概述、协程实现方法、协程优点和应用场470 收藏