channel runtime源码分析 2020-01-05 go 约 8651 字 预计阅读 18 分钟 Channel 是 Go 语言中一个非常重要的类型,是 Go 里的第一对象。通过 channel,Go 实现了通过通信来实现内存共享。Channel 是在多个 goroutine 之间传递数据 阅读更多
Go实现raft协议(1) 2019-12-22 go 约 5194 字 预计阅读 11 分钟 导读 实现思路来自于:MIT 6.824课程 Lab 2: Raft 做实验前,你应该熟读raft论文,这里是: ra 阅读更多
(译)Contiguous stacks 2019-11-30 翻译 约 3128 字 预计阅读 7 分钟 Contiguous stacks原文地址 为每一个go协程分配一块连续的栈内存空间,内存在用完的时候会重新分配/复制增长。 为什么? 目前的 阅读更多
main goroutine调度源码分析(2) 2019-11-13 go 约 8724 字 预计阅读 18 分钟 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 阅读更多
为什么都用快排而不用归并排序? 2019-11-13 algorithm 约 1088 字 预计阅读 3 分钟 汝之蜜糖,乙之砒霜。 快速排序: 1 2 3 * 最坏情况时间复杂度O(n^2) * 最好情况时间复杂度O(logn) * 平均时间复杂度O(nlgn) 归并排序 阅读更多
main goroutine调度源码分析(1) 2019-11-10 go 约 4073 字 预计阅读 9 分钟 汇编之下,一切踪迹皆显。 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 声 阅读更多