channel runtime源码分析

  Channel 是 Go 语言中一个非常重要的类型,是 Go 里的第一对象。通过 channel,Go 实现了通过通信来实现内存共享。Channel 是在多个 goroutine 之间传递数据

Go实现raft协议(1)

导读   实现思路来自于:MIT 6.824课程 Lab 2: Raft   做实验前,你应该熟读raft论文,这里是: ra

(译)Contiguous stacks

Contiguous stacks原文地址   为每一个go协程分配一块连续的栈内存空间,内存在用完的时候会重新分配/复制增长。 为什么? 目前的

main goroutine调度源码分析(2)

9.进入到runtime/proc.go,调度器初始化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

main goroutine调度源码分析(1)

汇编之下,一切踪迹皆显。 1.go程序入口_rt0_amd64_linux: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // TEXT 指令定义符号 _rt0_amd64_linux, 全局数据符号用 DATA 声