面试题1:
2. 代码效率分析,考察局部性原理
3. 多核CPU场景下,cache如何保持一致、不冲突?
4. uint类型溢出
5. 介绍rune类型
6. 编程题:3个函数分别打印cat、dog、fish,要求每个函数都要起一个goroutine,按照cat、dog、fish顺序打印在屏幕上100次。
7. 介绍一下channel,无缓冲和有缓冲区别
8. 是否了解channel底层实现,比如实现channel的数据结构是什么?
9. channel是否线程安全?
10. Mutex是悲观锁还是乐观锁?悲观锁、乐观锁是什么?
11. Mutex几种模式?
12. Mutex可以做自旋锁吗?
13. 介绍一下RWMutex
14. 项目中用过的锁?
15. 介绍一下线程安全的共享内存方式
16. 介绍一下goroutine
17. goroutine自旋占用cpu如何解决(go调用、gmp)
18. 介绍linux系统信号
19. goroutine抢占时机(gc 栈扫描)
20. Gc触发时机
21. 是否了解其他gc机制
22. Go内存管理方式
23. Channel分配在栈上还是堆上?哪些对象分配在堆上,哪些对象分配在栈上?
24. 介绍一下大对象小对象,为什么小对象多了会造成gc压力?
25. 项目中遇到的oom情况?
26. 项目中使用go遇到的坑?
27. 工作遇到的难题、有挑战的事情,如何解决?
28. 如何指定指令执行顺序?