信锐 C++开发一面总结

1. Redis持久化:RDB和AOF机制的区别及应用场景

答案:

  • RDB(快照):定时将内存数据dump到磁盘,恢复快但可能丢失最后一次快照后的数据,适合冷备份
  • AOF(追加日志):记录每个写操作,数据更安全但文件更大、恢复慢,适合对数据完整性要求高的场景
  • 混合持久化:Redis 4.0后支持RDB+AOF结合,兼顾性能和安全性

2. 如何实现高并发场景下的服务器负载监控

答案:

  • 监控CPU使用率:读取/proc/stat或使用top命令解析
  • 监控内存:读取/proc/meminfo
  • 监控网络IO:读取/proc/net/dev
  • 监控磁盘IO:使用iostat或读取/proc/diskstats
  • 实现方式:定时采样+滑动窗口计算平均值,超过阈值触发告警或限流

3. 用户态切换到内核态的几种方式

答案:

  • 系统调用(syscall):主动调用如read/write,通过int 0x80或syscall指令
  • 异常(exception):如缺页异常、除零错误
  • 中断(interrupt):硬件中断如时钟中断、网卡中断
  • 信号处理:内核向进程发送信号时会切换到内核态

4. C++智能指针的实现原理及循环引用问题

答案:

  • shared_ptr:引用计数,多个指针共享对象,计数为0时释放
  • weak_ptr:不增加引用计数,用于打破循环引用
  • unique_ptr:独占所有权,不可拷贝只能移动
  • 循环引用:A持有B的shared_ptr,B持有A的shared_ptr,导致计数永不为0。解决方案是其中一方使用weak_ptr

5. 除了信号,Linux还有哪些进程间通信(IPC)方式

答案:

  • 管道(pipe/FIFO):半双工,适合父子进程
  • 消息队列:异步通信,可以按类型接收
  • 共享内存:最快的IPC,需配合信号量同步
  • 信号量:用于进程同步
  • Socket:可跨网络通信

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++八股文全集 文章被收录于专栏

本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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