![中科曙光 C++一面](https://imgs.xnip.cn/cj/jy2/2023-09-07/3d866ad2-c284-4a31-88e9-5c85a42240b4.jpg)
岗位天津,对项目问的比较多
1. 介绍webserve项目,具体内容
2. 代码量大概有多少
3. 线程池中两个线程怎么决定哪个线程可以拿到任务
4. 正在工作的线程还会去拿任务吗
5. 线程池工作的逻辑
6. 假如任务队列不为空,但只有一个任务,其中一个线程拿到了锁并开始执行任务,没有拿到锁的线程状态是什么
7. 介绍I/O多路复用机制
8. 描述符是什么
9. 描述符是怎么创建的
10. socket_ctl()和socket_create()
11. I/O多路复用的同步和异步
12. 什么是阻塞和非阻塞
13. 项目中的多路复用是同步的还是异步的,阻塞的还是非阻塞的
14. 单例模式和阻塞队列实现日志系统,是怎么实现的
15. 单例模式的具体实现
16. 懒汉单例模式的线程安全问题
17. 为什么要用锁加双重判断,只判断一次不可以吗
18. 堆和栈的区别
19. 既然栈比堆的效率高,为什么不全用栈
20. 用到过的锁都有哪些
21. 写程序的时候遇到过内存泄露吗
22. Linux下怎么开发web服务器,用的什么编译器
23. 怎么编译工程,怎么把代码编程可执行文件
24. 程序怎么调试,用过gdb吗
25. static局部变量和普通变量有什么区别
26. 程序中局部变量,全局变量和动态申请的数据都存放在哪里
算法题:只用+1和×2操作,把0变成一个整数n所需要的最少操作步数