Featured image of post 【golang】Mutex原理

【golang】Mutex原理

本文深入解析了Golang中sync.Mutex的原理与实现,详细介绍了Mutex的数据结构、状态机、锁的获取与释放过程,以及正常模式和饥饿模式的区别。通过源码分析,帮助读者理解Mutex如何保证并发安全与公平性。

Featured image of post 【golang】nil的理解

【golang】nil的理解

nil是golang中的一个预定义标识符,表示空值。nil是一个特殊的值,它只能赋值给指针、通道、函数、接口、映射或切片类型的变量。nil不能赋值给其他类型的变量,如整数、浮点数、字符串等。

Featured image of post 【golang】panic详解

【golang】panic详解

panic是golang中的一个内置函数,用于在程序运行时发生异常情况时终止程序的执行。当panic函数被调用时,它会立即停止当前函数的执行,并开始执行一系列的清理操作,最终导致程序的崩溃。

Featured image of post 【golang】Pool详解

【golang】Pool详解

sync.Pool是Go语言标准库提供的一个临时对象池,可以用来存储一些临时对象,以便在需要时重复使用,从而减少内存分配和垃圾回收的开销。本文将详细介绍sync.Pool的原理和实现,并提供一些使用示例。

Featured image of post 【golang】pprof内存指标

【golang】pprof内存指标

最近组内一些Go服务碰到内存相关的问题,所以今天抽时间看了下Go pprof内存指标的含义,为后续查问题做准备。 内容主要来自于Go代码中对这些字段的注释,加自己的理解。理解不对的地方欢迎指正。

Featured image of post 【golang】sync.Map详解

【golang】sync.Map详解

本文详细解析了 Go 语言中的 `sync.Map`,介绍了其线程安全的特性、适用场景及使用方法。通过源码分析,深入探讨了 `sync.Map` 的底层数据结构、读写分离机制以及如何通过空间换时间的方式提升性能。文章还涵盖了 `sync.Map` 的常见操作如 Store、Load、Delete 等的实现原理,并提供了代码示例和性能优化建议。

Featured image of post 【golang】WaitGroup详解

【golang】WaitGroup详解

WaitGroup是golang中的一个同步原语,用于等待一组goroutine的完成。本文介绍WaitGroup的原理和源码实现。

Featured image of post 【mysql】sql优化原则

【mysql】sql优化原则

SQL 作为关系型数据库的标准语言,是 IT 从业人员必不可少的技能之一。SQL 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。本文介绍几个关键法则,可以帮助我们编写高效的 SQL 查询。