-
make 和 new 的区别﹖
-
了解过golang的内存管理吗?
-
调用函数传入结构体时,应该传值还是指针﹖说出你的理由?
-
线程有几种模型?Goroutine的原理了解过吗,讲一下实现和优势?
-
Goroutine什么时候会发生阻塞?
-
PMG模型中Goroutine有哪几种状态?
-
每个线程/协程占用多少内存知道吗?
-
如果Goroutine—直占用资源怎么办,PMG模型怎么解决的这个问题?
-
如果若干线程中一个线程OOM,会发生什么?如果是Goroutine 呢? 项目中出现过OOM吗,怎么解决的?
-
项目中错误处理是怎么做的?
-
如果若干个Goroutine,其中有一个panic,会发生什么?
-
defer可以捕获到其Goroutine的子Goroutine 的panic吗?
-
开发用Gin框架吗?Gin怎么做参数校验?
-
中间件使用过吗?怎么使用的。Gin的错误处理使用过吗?Gin中自定义校验规则知道怎么做吗?自定义校验器的返回值呢?
-
golang中解析tag是怎么实现的?反射原理是什么?通过反射调用函数
-
golang的锁机制了解过吗? Mutex的锁有哪几种模式,分别介绍一下? Mutex锁底层如何实现了解过吗?
-
channel、channel使用中需要注意的地方?
-
数据库用的什么?数据库锁有了解吗?mysql锁机制讲一下。mysql分库分表。
-
讲一下redis分布式锁?redis主从模式和集群模式的区别了解过吗?redis的数据类型有哪些?redis持久化怎么做的?
-
编程题:你了解的负载均衡算法有什么?实现一个负载均衡算法。
-
自我介绍
-
代码效率分析,考察局部性原理
-
多核CPU场景下,cache如何保持一致、不冲突?
-
uint类型溢出
-
介绍rune类型
-
编程题:3个函数分别打印cat、dog、fish,要求每个函数都要起一个goroutine,按照cat、dog、fish顺序打印在屏幕上100次。
-
介绍一下channel,无缓冲和有缓冲区别
-
是否了解channel底层实现,比如实现channel的数据结构是什么?
-
channel是否线程安全?
-
Mutex是悲观锁还是乐观锁?悲观锁、乐观锁是什么?
-
Mutex几种模式?
-
Mutex可以做自旋锁吗?
-
介绍一下RWMutex
-
项目中用过的锁?
-
介绍一下线程安全的共享内存方式
-
介绍一下goroutine
-
goroutine自旋占用cpu如何解决(go调用、gmp)
-
介绍linux系统信号
-
goroutine抢占时机(gc 栈扫描)
-
Gc触发时机
-
是否了解其他gc机制
-
Go内存管理方式
-
Channel分配在栈上还是堆上?哪些对象分配在堆上,哪些对象分配在栈上?
-
介绍一下大对象小对象,为什么小对象多了会造成gc压力?
-
项目中遇到的oom情况?
-
项目中使用go遇到的坑?
-
工作遇到的难题、有挑战的事情,如何解决?
-
如何指定指令执行顺序?