自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Go defer(二):从汇编的角度理解延迟调用的实现

​Go的延迟调用机制会在当前函数返回前执行传入的函数,它会经常被用于关闭文件描述符、关闭数据库连接以及解锁资源。之前的文章详细介绍了defer的使用以及其底层实现原理,本文则以Go 1.16版本以及AMD 64架构为实验环境,从汇编语言的角度去分析defer的实现原理,主要涉及defer参数传递方式、闭包、返回值修改、内存分配方式等内容。​

2025-07-07 21:20:01 1287

原创 Go defer(一):延迟调用的使用及其底层实现原理详解

defer是Go语言提供的一种用于注册延迟调用的机制,让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。在资源释放、耗时统计等场景有着很高的使用频率。本文以Go 1.16版本的代码为例,主要介绍defer使用特点,其底层实现原理。

2025-07-03 20:00:00 1196

原创 Go interface接口(二):从汇编的角度理解类型转换、断言的底层实现原理

​接口Interface一直是Go语言中实现多态举足轻重的存在,它涉及空接口、非空接口、具体结构体类型之间的相互转换,之前的文章已经从接口的使用、底层源码的视角介绍了接口的相关知识,本文则以AMD64架构、Go 1.16版本为环境,从汇编代码角度介绍接口与接口、结构体与接口之间的相关转换底层的实现。​

2025-06-30 20:00:01 1028

原创 Go interface接口(一):从使用规则到底层实现原理

Go接口作为面向对象编程中类多态功能多实现,在Go语言编程中有着举足轻重的地位,本文以接口为主题,介绍其使用注意事项,同时进一步分析了接口的底层实现,包括空接口、非空接口底层数据结构、全局结构管理对象,以及接口、断言操作的底层函数实现。

2025-06-28 15:00:00 1042

原创 Go struct:结构体使用基础以及内存布局

Go语言中的结构体是实现类面向对象编程的基础,也是接口这一重要玩法的唯一实现者,因此了解结构体对后续了解掌握接口的实现非常有帮助。本文以Go 1.16版本为依托,介绍结构体的使用,重点介绍了结构体内存布局相关知识,顺带总结了一些结构体绑定的方法相关注意事项。

2025-06-23 19:00:00 837

原创 Go channel通道:从高效使用到底层实现原理详解

Channel是Go语言中并发通信的重要数据结构,主要被用于多个goroutine之间交换数据、通信,它提供了一种类型安全、并发安全的通信方式,遵循“先进先出(FIFO)”队列语义。本文将以Go 1.16版本为基础,介绍channel的基本使用,以及其底层实现。

2025-06-16 17:50:01 1293

原创 Go sync.Map:从高效使用到底层实现原理详解

Go标准库中的sync.Map是专为高并发读多写少场景设计的并发安全映射结构。通过读写分离设计(read map和dirty map)与原子操作优化,相比传统互斥锁方案能显著提升读性能。本文将从sync.Map的使用、底层实现两个角度对其进行详细介绍!

2025-06-12 20:00:00 1024

原创 Go map映射:从高效使用到底层实现原理详解

本文介绍了Go语言中的map基本使用要点以及其底层实现,Go语言中的map是一种高效的键值对存储结构,采用哈希表实现,同时拥有自动渐进式的扩容机制,但是其非并发安全需要特别注意!通过阅读本文相信能让你对map的了解更进一步。

2025-06-09 19:10:54 1267

原创 Go string字符串:从高效使用到底层实现原理详解

本文介绍了Go语言字符串的核心知识及使用要点。字符串底层由数组指针、长度组成,其底层数组的只读特性需要特别关注。此外,还介绍了字符串的基本使用以及与字符切片之间的关系。

2025-06-04 21:30:00 1826

原创 Go slice切片:从高效使用到底层实现原理详解

本文介绍了Go语言切片的核心知识及使用要点。切片底层由数组指针、长度和容量组成,支持自动扩容。创建方式包括声明、new、make和字面量初始化;传参时需注意值拷贝特性,也介绍了append函数底层实现逻辑。

2025-06-01 09:45:03 774 1

Mac系统下MySQL源码以及debug环境配置资源

本资源包含在Mac系统下使用VsCode配置MySQL debug环境配置的说明文档以及MySQL 5.7.44版本源码,适用于想深入了解、学习MySQL源码的同学!

2025-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除