Go语言
-
Golang context 实现原理
0 前言 context 是 golang 中的经典工具,主要在异步场景中用于实现并发协调以及对 goroutine 的生命周期控制. 除此之外,context 还兼有一定的数据存…
-
Golang Channel 实现原理
用过 go 的都知道 channel,无需多言,直接开整! 1 核心数据结构 chan数据结构 1.1 hchan type hchan struct …
-
Golang 协程池 Ants 实现原理
0 前言 本文核心主题是向大家介绍 golang 中大名鼎鼎的 ants 协程池库的实现原理,由于其实现过程中用到 sync 库下的几个工具,因此本文大体分为两部分: • …
-
Golang 单机锁实现原理
0 前言 本文主体内容分两部分: • 第一部分谈及 golang 最常用的互斥锁 sync.Mutex 的实现原理; • 第二部分则是以 Mutex 为基础,进…
-
Golang sync.Map 实现原理
1 前言 golang 中,map 不是并发安全的结构,并发读写会引发严重的错误. sync 标准包下的 sync.Map 能解决 map 并发读写的问题,本文通过手撕源码+梳理流…
-
Golang GMP 原理
1 概念梳理 1.1 线程 通常语义中的线程,指的是内核级线程,核心点如下: (1)是操作系统最小调度单元; (2)创建、销毁、调度交由内核完成,cpu 需完成用户态与内核态间的切…
-
Golang 内存模型与分配机制
0 前言 未来两周,想和大家探讨的主题是 Golang 内存管理机制. 本系列会分为两篇,第一篇谈及 Golang 内存模型以及内存分配机制,第二篇会和大家讨论 Golang 的垃…
-
Golang 垃圾回收原理分析
0 前言 近期在和大家一起探讨 Golang 内存管理机制. 本系列内容分为两部分,第一部分谈及 Golang 内存模型以及内存分配机制,第二部分和大家讨论 Golang 的垃圾回…
-
Golang HTTP 标准库实现原理
本期和大家一起探讨 Golang net/http 包的底层实现,走读的源码版本为 Golang 1.19. 1 整体框架 1.1 C-S架构 http…
-
解析 Golang 网络 IO 模型之 EPOLL
0 前言 前一篇文章和大家聊了 Golang HTTP 标准库的底层实现,本篇尝试向下深挖,和大家一起聊聊 Golang 底层 IO 模型中使用到的 epoll 机制. 本文大抵分…