美团一面

1. 线程、协程和进程之间是什么关系?

2. 工作中遇到不熟悉的概念,你是怎么去学习和掌握它的?

3. 多线程之间怎么通信?互斥锁和信号量有什么区别?它们本质上是不是都依赖共享内存?

4. 除了锁和信号量,还有其他线程通信的方式吗?

5. 从操作系统的角度,基于共享内存的线程通信是怎么实现的?

6. 操作系统是怎么管理锁来实现互斥的?

7. 产生死锁的必要条件是什么?

8. 在写代码时怎么预防死锁?

9. 如果线上系统发生了死锁,你会怎么排查和解决问题?

10. 有哪些 C++ 的死锁排查工具?

11. 定位到死锁问题后,怎么解决它?

12. 线上系统出现死锁,需要快速止损,让系统恢复正常,你会怎么做?

13. 你了解哪些消息队列?

14. 如果消息队列出现消息积压,怎么快速消化?除了增加消费者,生产者这边能做什么?

15. 怎么限制生产者的生产速度?了解常用的限流算法吗?

16. 在分布式架构下,怎么估算系统的处理速度?

17. 线上任务扩容时,怎么保证消费者平滑地增加?

18. 对 MySQL 了解多少?分享一下你的学习方法?

19. 实习中有没有需要多团队协作的经历?

20. 你怎么理解线程安全?

21. 除了互斥锁和条件变量,还有其他保证线程安全的方法吗?

22. 怎么理解原子操作?操作系统底层是怎么实现原子操作的?

23. TCP 和 UDP 有什么区别和各自的问题?

24. 详细讲讲 TCP 的三次握手和四次挥手过程。

25. 为什么建立连接需要三次握手,而断开连接需要四次挥手?

26. 为什么说 UDP 通信快?为什么它能接受乱序的数据包?

27. 手撕:判断一个字符串是否是有效的 IPv4 或 IPv6 地址。

全部评论

相关推荐

评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务