Go 原理与面试问答
共 67 篇文章 · 第 1 / 2 页
这一组文章的目标是把 Go 面试里最常被追问的几个点讲到源码层面,而不是停在「底层是哈希表」这种程度。主要覆盖:GMP 调度器——G、M、P 三者的关系,工作窃取与系统调用时的 handoff;map——桶结构、溢出桶、扩容的触发条件与渐进式迁移过程;channel——hchan 结构、有缓冲与无缓冲的收发路径、select 的实现;interface——eface 与 iface 的区别、类型断言的开销、nil interface 的经典陷阱;此外还有反射、逃逸分析、GC 与内存模型、编译链接过程。读完这些,面试里被反问「那如果……呢」时会从容很多。
全部文章
- 面试题收录
- 书籍目录
- 项目介绍 - Golang
- 参考资料 - channel 发送和接收元素的本质是什么
- channel 在什么情况下会引起资源泄漏 - Go 原理
- 数据结构 - Go 原理
- 停止信号 - Go 原理
- 什么是 CSP - Go 原理
- 源码分析 - Golang
- 关于 channel 的 happened-before 有哪些 - Go 原理
- 关闭一个 channel 的过程是怎样的 - Go 原理
- 源码分析 - 向 channel 发送数据的过程是怎样的
- 参考资料 - 如何优雅地关闭 channel
- 操作 channel 的情况总结 - Go 原理
- GC 的认识 - Go 原理
- 参考资料 - g0 栈何用户栈如何切换
- 参考资料 - goroutine 如何退出
- goroutine和线程的区别 - Go 原理
- GPM 是什么 - Go 原理
- 参考资料 - M 如何找工作
- 参考资料 - mian gorutine 如何创建
- 参考资料 - Go 原理 · 调度器
- 参考资料 - 调度器 · schedule 循环如何运转
- 抢占进行系统调用的 P - Go 原理
- 一个调度相关的陷阱 - Go 原理
- 什么是 sheduler - Go 原理
- 什么是workstealing - Go 原理
- 调整 SP - Go 原理
- 参考资料 - Golang · Go 原理
- 参考资料 - Go 原理 · Go 语言与鸭子类型的关系
- 参考资料 - Go 原理 · iface 和 eface 的区别是什么
- 方法 - Golang
- 参考资料 - Go 原理 · 如何用 interface 实现多态
- 参考资料 - Go 原理 · 接口的动态类型和动态值
- 参考资料 - Go 原理 · 接口的构造过程是怎样的
- 参考资料 - Go 原理 · 接口转换的原理
- 类型转换 - Golang
- 编译器自动检测类型是否实现接口 - Golang
- float 类型可以作为 map 的 key 吗
- map 中的 key 为什么是无序的
- map 的删除过程是怎样的
- 什么是 map - Go 原理
- map 的扩容过程是怎样的
- map 的赋值过程是怎样的
- map 的遍历过程是怎样的
- 可以边遍历边删除吗 - Go 原理
- 如何实现两种 get 操作
- types 和 interface - Go 原理
- 什么情况下需要使用反射 - Go 原理
- 什么是反射 - Go 原理
- 如何比较两个对象完全相同 - Go 原理
- 切片作为函数参数 - Go 原理
- 切片的容量是怎样增长的 - Go 原理
- 数组和切片有什么异同 - Go 原理
- 接口 - 标准库
- context 是什么 - 标准库
- 传递共享的数据 - 标准库
- context.Value 的查找过程是怎样的 - 标准库
- Go指针和unsafe.Pointer有什么区别 - 标准库
- 如何利用unsafe包修改私有成员 - 标准库