职位题库

Go开发工程师面试题库

面向Go开发工程师相关面试,围绕Go、并发、map、并发安全、数据结构等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

5 道题目建议用时 15 分钟专项面试练习

全部题目 5 道题

01

请说明 Go 的 GMP 调度模型,并举例说明 goroutine 在哪些情况下会被阻塞。

考察对 Go 运行时调度模型的理解深度,以及能否把抽象模型和实际阻塞场景对应起来。
02

channel 的底层结构是什么?有缓冲和无缓冲有什么区别?close 之后读写分别会怎样?

考察对 channel 实现机制和边界行为的掌握,尤其是 close 后的读写语义。
03

select 的底层是如何实现的?多个 case 同时就绪时怎么选?

考察对 select 运行时机制的理解,以及是否知道随机选择这一语义。
04

slice 和 array 有什么区别?slice 的扩容规则是怎样的?

考察基础数据结构理解,以及是否知道扩容会带来底层数组复制这一性能影响。
05

map 为什么并发读写会 panic?怎么解决?sync.Map 适合什么场景?

考察并发安全意识,以及能否根据读写模式选择合适的同步方案。
返回面试题库