面试了大概 40min,又吃了「不会媒体」的亏,一问到媒体的内容就寄了,不过这次面试看上去还好,最后还问我是否有意向转媒体方向,面试内容如下:
- 自我介绍。
- 讲下如何使用 epoll 和线程池实现的多线程 Reactor 高并发模型。
- epoll 和 select poll 的区别是什么。
- 有一个场景,当 100 个线程在处理 100 个任务,当 101 个 r/w 请求过来后,需要等到 100 个线程中某一个线程处于空闲状态才能处理,而这种通知机制你是如何去处理的?(主线程会将 r/w 任务放到任务队列,并和工作线程共享该任务队列,当其中某一个线程空闲时,会因为任务队列不为空而继续处理)。
- 讲下 RESTFul API 是什么。
- rtmp 消息中的消息和块分别指什么。
- rtmp 包中对应音视频的封装格式是什么(m3u8 / flv / mp4 / avi / mpeg2 等)。
- struct 和 class 有什么区别。
- 空类 / 空对象的大小是多少,如果类里面有 1 个函数呢。
- 左值 / 右值的定义是指什么。
- c++11 中智能指针有那几种,分别有什么作用。
最后说他们团队主要是做媒体相关的开发即向业务控制提供 lib 库,问了下我是否有意愿从后台转媒体,我说可以,然后问了下岗位的职责说是做智能白板 / 投屏,有许多媒体和控制逻辑的优化工作要做。