summary
Collapsed text
Collapsed text
Collapsed text
Collapsed text
summary
details
讲一讲go协程和线程。go的并发模型、goroutine。
Go的内存模型、垃圾回收。
反射是什么
go和python的协程
Q:singleFlight在代码层面是怎么实现的?
A:主要提到了sync.Mutex和sync.WaitGroup。
Q:那singleflight机制其他的线程在共享第一个请求结果的时候是串行执行的吗?
A:(这个回答的不好)是的,其他的线程确实会阻塞,因为singleFlight机制是为了避免缓存击穿,确实会造成阻塞,这个没办法避免。
Q:golang当中是值传递还是地址传递?
A:golang中只有值传递,没有地址传递。
Q:如果我对于一个函数传递的参数是slice,那么函数中的操作是会改变外部变量的吧?
A:是的,会改变
Q:但是有一种情况不会改变外部变量,你讲讲是哪一种情况?
A:尴尬了一分钟,我实在不会。面试官补充说,如果需要扩容的话,函数内部会复制一个变量,这个时候不会改变外部的变量