快手 后台开发 一面凉经
今天上高铁之前临时找的一个地方面的快手,本来状态就很差,然后面试官问的也都很难,搞的心态有点崩。。
1.TCP的三次握手和四次挥手(送分题)
2.串口协议的波特率是什么含义(项目里有,但是我没怎么用),波特率翻倍采样率会发生什么变化
接下来就有点难顶了
1.分布式锁的基本思路
2.分布式锁如何实现,key-value的值应该怎么设置
3.分布式如何实现可重入
4.分布式锁如何确定是当前线程
5.当出现并发竞争的时候,分布式锁会如何进行分配
6.分布式锁在delete的时候可能出现非原子操作,应该怎么解决
(分布式锁问完我就懵圈了)
锁,锁还是锁
1.互斥锁和自旋锁有什么区别(送分题)
2.Synchronized底层怎么实现的可重入(我答的是JVM的两个原子指令,但是面试官要我说出底层的实现,可能涉及到C和C++的,我说我不会)
3.Synchronized如何确定当前线程(通过提取对象头的相应字段)。如何提取对象头(求求您绕了我吧),提取指令是否是原子指令
4.锁升级过程(锁消除 - 偏向锁 -轻量级锁 -自旋锁 - 重量级锁),轻量级锁和重量级锁的区别(说实话我也想知道这个轻量级锁和自旋锁有什么区别)
5.5个进程,在非抢占的情况下,竞争一个锁,当锁释放的时候,进程是否是随机取得锁的。(我答的是,面试官说不是)
算法题:
合并K个有序数组,一共有N个数。(没做出来)
我感觉我的不是校招难度是社招难度