#golang面经# 1、容量为1的channel在什么情况下会堵塞(除了常见的)
2、多线程同时读写map中不同的key,一个线程只会读写一个key,会发送什么
3、检查数据竞争
4、实现了一个web的server,如何设置这个server返回的response的类型,比如说是一个图片一个视频一个json
5、快速定位死锁
6、用户从客户端访问一个页面,webserver如何主动的给这个页面推送一个通知
7、singleflght是使用什么方式去通知其他线程,其他线程怎么阻塞的
8、不用waitgroup怎么实现这部分
9、slice是[]int{1,2},把它传入一个函数,修改第一项的值为3,函数结束,原来slice值改变了吗
10、如果函数是新建一个list等于append原来的slice,list=append(slice,3),调用完这个函数后在函数的外部打印这个原来slice的长度是多少,新的是多少,地址改变了吗,指向的原来的数组呢
11、a和b两个线程,a里面有defer recover,a里面新开了一个b,b没写defer recover,b发生了panic,ab两个线程会发生什么情况(之前没听清,以为是两个不相干的函数,我还在想那不直接panic还要咋)
12、在函数参数传递一个非指针的互斥锁会发生什么事情?为什么会发生?
13、优化过sql吗,数据库是部署在哪里的,讲一个你认为最好的sql优化例子
14、mysql部署在阿里云上,如何找到最慢的sql语句
15、用过gorm,如果一张上百万的数据的表,要新建一个字段的索引,如何保证线上的服务尽量少的被影响
16、jwt鉴权管理实现怎么做的,怎么实现的鉴权,修改了token它怎么解析,为什么这么解析,原理是什么
17、详细说一下令牌桶算法的实现