阿里平头哥一面,研发工程师-C/C++
1、自我介绍
2、实习项目中spdlog库的使用方法
3、如何借助spdlog库,实现自己的sink
4、sink是线程安全的吗,如何保证
5、日志压缩如何实现的,说一下这个过程中的竞争问题
6、日志压缩异步任务的资源竞争问题,什么情况下notify,谁负责notify
7、如果通知线程先通知了,异步任务线程才开始wait,那么这个线程还能处理任务队列中的任务吗
8、static_cast和reinterpret_cast有什么区别
9、一个类的成员函数中有一个lamda表达式,可以访问这个类的私有成员吗,如何访问,如何传参
10、lamda表达式可以拷贝吗
11、如果一个lamda表达式有一个按值捕获的变量a,再拷贝了这个lamda表达式是什么结果
12、threadlocal了解吗,作用是什么,什么时候创建呢
13、如果一个线程创建了一个threadlocal变量a,它可以让另一个线程访问吗,如果硬要传可以吗
14、什么场景下用list比vector好呢
15、vector里有10个成员,迭代器指向第3个元素,现在删除第4个元素,那么这个迭代器会失效吗
16、unordered_map也是有很多元素,如果插入一个元素,原本的迭代器会失效吗,什么情况下会失效
17、移动语义move一般在什么情况下用
18、什么场景下用move可以获得不错的性能增益,什么情况下不能
19、一个结构体里有一个1000size的数组,一个实例在move之后,那这个数组发生什么变化
20、原子操作和互斥锁一般用在什么场景
21、如果我给三个变量赋值,那我用三个原子变量可以吗
22、父进程open了一个文件描述符,fork了一个子进程,那子进程可以访问这个文件描述符吗
23、如果子进程close了这个文件描述符,父进程还可以访问吗
24、父进程读文件读到第10个字节,如何fork了一个子进程,子进程读的话,是从第几个字节开始读
25、手撕:非常长的一个题目,主要考察的是多线程安全。大意是实现一个类,从一个fd里读数据,边读边解析信息,然后最后在析构时上传解析出的信息。要求读线程和解析线程分离实现。#发面经攒人品#