图解Go语言的gc算法

虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hybrid write barrier 经典的GC算法有三种:引用计数(reference counting)、标记-清扫(mark & sweep)、复制收集(Copy and Collection)。 Golang的GC算法主要是...阅读全文

阅读:2127 评论:0

Golang 基础整理 这一篇就够了

第一个golang程序package main import "fmt" func main() { fmt.Println("hello golang") }基本数据类型布尔型( true 或者 false)数字类型( 整型 int 和 浮点型 float32、float64 )字符串类型( 字符串就是一串固定长度的字符连接起来的字符序列 )派生类型:指针类型(Pointer)数组类型结构化类型(struct)Channel 类型函数类型切片类型接口类型(interface)Map 类型数字类...阅读全文

2020-10-29 17:32:32 阿壮Jonsson
阅读:1035 评论:0

Golang Channel原理

Channel是Golang实现CSP的核心。 基于channel通信主要涉及buf(数据)和sendq、recvq(维护阻塞的G),lock保证并发访问安全; 本质是一个基于环形缓存的有锁队列,但G的阻塞是在用户空间; 图片来源:https://i6448038.github.io/2019/04/11/go-channel/ 目录 新建channel 发送数据 协程直接发送数据 接收数据 协程直接接收数据 关闭channel Select原理 新建channel channel的运行时结构是...阅读全文

2020-10-28 01:32:40 梦工厂
阅读:638 评论:0