标签:Go语言

共 154 篇文章

Go语言testing.T.Parallel实现测试用例并行执行

Go语言testing.T.Parallel实现测试用例并行执行 在 Go 语言项目开发中,随着代码量的增加,测试套件的运行时间往往会越来越长。缩短测试反馈循环是提升开发效率的关键

# Go语言 # 并行测试 # 单元测试
2026-04-29 182 0

Go语言channel的select与default的非阻塞发送实现

在 Go 语言并发编程中,直接向 channel 发送数据通常会阻塞当前 goroutine,直到接收者准备好。这种机制虽然保证了数据同步,但在某些高吞吐或对延迟敏感的场景下,我们

# Go语言 # 并发编程 # Channel
2026-04-29 153 0

Go语言sync.RWMutex的读锁升级与写锁降级限制

Go语言sync.RWMutex的读锁升级与写锁降级限制 sync.RWMutex 是 Go 语言中用于读写分离的锁机制,允许多个读操作同时进行,但写操作互斥。在使用过程中,关于“

# Go语言 # 读写锁 # RWMutex
2026-04-29 152 0

Go语言HTTP请求默认不超时导致Goroutine泄漏的问题

Go语言HTTP请求默认不超时导致Goroutine泄漏的问题 Go语言标准库中的 net/http 包极其易用,特别是通过 http.Get 或 http.Post 等便捷函数发

# Go语言 # HTTP请求 # Goroutine泄漏
2026-04-29 160 0

Go语言select在nil channel上的永久阻塞行为

Go 语言的 select 语句是处理多通道操作的核心机制,但它在处理 nil channel 时的行为往往出乎新手意料。当 select 中的某个 case 作用于 nil ch

# Go语言 # Go并发 # select
2026-04-28 150 0

Go语言sort.Slice自定义排序的闭包写法与稳定性

Go语言sort.Slice自定义排序的闭包写法与稳定性 Go 语言的 sort 包提供了非常便捷的切片排序功能。通过闭包,我们可以极简地实现各种自定义排序逻辑。然而,在使用 so

# Go语言 # sort包 # 自定义排序
2026-04-28 155 0

Go语言embed包嵌入静态文件的编译时打包

Go语言embed包嵌入静态文件的编译时打包 Go 1.16版本引入了embed包,它允许在编译时将文件和目录直接嵌入到可执行文件中。这解决了传统方法中需要单独管理静态文件的问题,

# Go语言 # embed包 # 静态文件
2026-04-28 149 0

Go语言crypto/rand生成密码学安全随机数

Go语言crypto/rand生成密码学安全随机数 引入 在编程中,随机数生成是一个常见需求,特别是在安全敏感的应用中。Go语言提供了crypto/rand包,它实现了密码学安全的

# Go语言 # crypto/rand # 密码学安全
2026-04-27 179 0

Go语言sync.Map的LoadAndDelete原子操作实现

Go语言sync.Map的LoadAndDelete原子操作实现 在并发编程中,从 map 中读取一个键值对并立即将其删除是一个常见的需求。如果使用普通的 map 加锁操作,通常需

# Go语言 # sync.Map # 并发编程
2026-04-27 171 0

Go语言runtime.GC手动触发垃圾回收的阻塞影响

Go语言runtime.GC手动触发垃圾回收的阻塞影响 在 Go 语言中,垃圾回收(GC)通常作为后台进程自动运行,开发者无需关心内存释放的时机。然而,在高性能敏感或特定内存控制的

# Go语言 # 垃圾回收 # 手动GC
2026-04-26 204 0

Go语言init函数的执行顺序与多个init函数的情况

Go语言init函数的执行顺序与多个init函数的情况 Go 语言中的 init 函数是一种特殊的函数,它用于在程序执行前进行包级别的初始化操作。理解 init 函数的执行顺序,特

# Go语言 # init函数 # 执行顺序
2026-04-26 160 0

Go语言Context为什么不建议存储在struct中

Go语言Context为什么不建议存储在struct中 在Go语言开发中,context.Context 是处理请求超时、取消信号和跨goroutine传递元数据的核心机制。许多初

# Go语言 # Context # 结构体
2026-04-26 163 0

Go语言os.Signal监听系统信号实现优雅关闭

Go语言os.Signal监听系统信号实现优雅关闭 在Go语言开发的服务端程序中,如果直接强制终止进程(如直接使用 kill 9 或关闭终端窗口),正在处理的请求可能会突然中断,导

# Go语言 # 优雅关闭 # 系统信号
2026-04-26 159 0

Go语言http.HandleFunc与http.Handler接口的路由注册

Go语言http.HandleFunc与http.Handler接口的路由注册 在Go语言的 net/http 标准库中,注册HTTP路由主要有两种方式:一种是基于函数的便捷方式,

# Go语言 # HTTP路由 # 路由注册
2026-04-26 135 0

Go语言context.WithCancel的取消函数调用幂等性

Go语言context.WithCancel的取消函数调用幂等性 在Go语言的并发编程中,context 包是控制goroutine生命周期的核心工具。许多开发者在处理错误退出或超

# Go语言 # 并发编程 # Context包
2026-04-26 185 0

Go语言atomic.Value在并发场景下的类型安全存储

Go语言atomic.Value在并发场景下的类型安全存储 在并发编程中,频繁使用互斥锁(sync.Mutex)会导致读写性能瓶颈,特别是在读多写少的场景下。Go 标准库中的 at

# Go语言 # 并发编程 # 类型安全
2026-04-25 165 0

Go语言Race Detector在复杂并发场景下的误报排查

Go语言Race Detector在复杂并发场景下的误报排查 Go 语言自带的 Race Detector(竞态检测器)是基于 ThreadSanitizer(TSan)构建的动态

# Go语言 # 并发编程 # 数据竞争
2026-04-25 170 0

Go语言逃逸分析:变量何时分配在堆上而非栈上

Go语言逃逸分析:变量何时分配在堆上而非栈上 理解 Go 语言的逃逸分析是编写高性能代码的关键。Go 编译器会自动决定变量是分配在快速的栈上,还是需要垃圾回收(GC)管理的堆上。掌

# Go语言 # 逃逸分析 # 内存分配
2026-04-25 179 0

Go语言sync.Map的Range遍历与普通map的性能对比

Go语言sync.Map的Range遍历与普通map的性能对比 在Go语言高并发编程中,选择合适的数据结构对性能至关重要。sync.Map 专为特定场景(如读多写少、Key集合稳定

# Go语言 # sync.Map # 性能对比
2026-04-24 171 0

Go语言context.WithValue的键类型设计与命名空间冲突

Go语言context.WithValue的键类型设计与命名空间冲突 context.WithValue 是 Go 语言中在调用链之间传递请求域数据的标准机制。然而,许多开发者在使

# Go语言 # context # 键类型设计
2026-04-23 169 0