9.23 深信服一面 50min

申请的是Go岗位,因为之前参加青训营学过一点点皮毛,就试了试,面试情况来看,是我太草率了...哈哈哈哈

体验感很差的点是,他一直按键盘上的一个按键,弹笔帽上的那个东西.... 听着很不舒服

迟到了几分钟,说了下抱歉(好评,hhh)

没有自我介绍环节,第一句话“你是对Go底层比较熟悉是吗”(我简历上写的“熟悉C++和Golang基本语法”)

我说,我说对C++了解的更多,对Go底层没有了解很多。

他说:那还是问一下GO相关的吧。

开始坐牢(以下问题是乱序的,没有录屏)

  • channel的作用,底层是怎么实现的,用在什么样的场景里(我回答了协程之间通信以及同步,追问还有没有其他的,我说不了解了...)
  • 进程间通信的方式,都是用在什么场景下呢(消息队列和共享内存,有什么区别呢)
  • 协程,进程,线程的区别
  • GMP模型,说到当前M的队列里没有G时,会先从全局“偷”,如果没有会从其他的队列里“偷”一半的G进行运行,他问我为什么要这样设计,为什么要设计全局g队列和本地g队列,我想了下说:我觉得是因为操作系统的局部性原理... (求大佬指教一下)
  • 问我自己实现过什么数据结构...比如红黑树这些 (平常写算法题最多写个链表,二叉树吧...._),害怕!手撕红黑树终于到我头上了???
  • 问每种数据结构适合的场景
  • 哈希表这个数据结构是怎么实现的,当出现哈希冲突怎么解决(开链,开放寻址),这两个方法有什么不同呢,各自的优势。为什么要rehash,怎样rehash
  • 有一篇英文文章,要统计前七个词频率最低的单词(我说用优先队列,大根堆(当前频率最小的七个单词里频率最大的是堆顶元素,比堆顶小就pop堆顶),说完了之后给我来一句用map? 我人傻了... 是不是在问我怎么存数据? 我说用一个kv结构就行,k存单词,v存频次,对v做堆排序),现在写帖子的时候,感觉用快速选择是不是更好
  • 并发编程,协程共享变量是否需要加锁

最搞人心态的来了!

给了几个区间,解释了题意,要合并有重叠的区间。我说了我的想法,然后说了句“不明白,写代码吧...”我问要不要写输入输出...没鸟我???我起手一个 #include,他问我会不会用Go写... 我直说了不是很熟练,平常写算法都用C++。好家伙!

它开始一直笑一直笑.......我就懒得理他,直接开始写了。

算法题:lc56.合并区间

#深信服##秋招##面试##23届秋招笔面经#
全部评论
看了挺多人的面经,感觉深信服的面试官都有点不尊重人啊
3 回复
分享
发布于 2022-09-23 22:48 四川
【为什么要设计全局g队列和本地g队列】可以让M尽快的获取到G,但是又避免频繁加锁,从而尽可能使并发性能更好
1 回复
分享
发布于 2022-10-11 10:39 四川
联想
校招火热招聘中
官网直投
Go 里的工作窃取机制设计本意上是将 goroutines 均匀分配到 P 上运行的 M,以此来提升全局运行效率。一开始也不会尝试去偷,只是如果发现LRQ 和 GRQ 都没 g 了的时候才尝试去偷。
点赞 回复
分享
发布于 2022-09-24 09:06 广东
有消息吗
点赞 回复
分享
发布于 2022-09-24 23:09 湖南
用cpp写算法不行真的绷不住了,都啥年代了还在约束语言
点赞 回复
分享
发布于 2022-10-12 11:42 北京

相关推荐

1 19 评论
分享
牛客网
牛客企业服务