220307 | 抖音系统架构 | 后端研发

自我介绍

组里在线服务用的是C++,一直在问考不考虑C++...

语言

  1. Java/Go区别---这里应该回答GMP调度器,使用协程更加轻量化 切换成本低

  2. Go继承如何实现

  3. Java/Go垃圾回收?Go没有虚拟机,什么时候进行垃圾回收?

首先明确,垃圾回收和VM没有关系,

  1. 如何查看JVM垃圾回收情况、如果不用启动参数如何查看?
  1. 线程池如何实现?

七个参数

OS

  1. 上下文切换?为什么开销大?--OS实现,陷入内核态

  2. 协程调度为什么开销小?

  3. GMP实现原理?

  4. 协程间切换如何操作的?

  5. 加锁的队列如何实现?---synchronized

  6. 轻量级的队列如何实现?无锁算法---CAS

  7. 可重入锁?

可重入:某个线程已经获得某个锁,可以再次获取锁而不会出现死锁

  1. 公平锁?

按照加锁的顺序获得锁

  1. JDK中如何实现?

维护申请锁的队列

  1. 申请锁的队列如何实现线程安全?

原子操作

算法题 或者叫应用题

输入:多个队列,每个队列有 weight,队列内部有序;输出长度 N;
输出:长度为 N 的列表
要求:合并后多队列内容占比与权重比例一致,且每个队列的内容优先选择顺序在前面的。结果尽量从多个队列里获取

网络

  1. HTTP的请求方法

GET POST

  1. SSL

  2. 重放攻击

  1. 时间戳
  2. 序号
  3. 提问与应答 https://blog.csdn.net/heluan123132/article/details/74375304
  1. 如何确定请求节点?

负载均衡

  1. 负载均衡算法?

http://www.cyc2018.xyz/%E5%85%B6%E5%AE%83/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E9%9B%86%E7%BE%A4.html#%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E7%AE%97%E6%B3%95

反问

基础OK 算法代码风格需要再加强

组里用C++ 面试官说再综合考虑一下 大概率凉了😅

全部评论
lz那个应用题怎么做
点赞 回复
分享
发布于 2022-03-26 16:28

相关推荐

投递拼多多等公司10个岗位
点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务