forked from linyacool/WebServer
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
23 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# 面试被问过的问题 | ||
|
||
* 介绍一下这个项目(几乎是必问的) | ||
* 定时器是怎么实现的?还有什么实现方式? | ||
* 实现一个无锁队列(用原子操作) | ||
* eventfd是什么?有什么好处? | ||
* 双缓冲区异步日志是什么?为什么要这样做?对这个日志系统有没有进行压力测试? | ||
* 什么是优雅关闭连接?(就是read()到0,要透明的传递这个行为而不是直接暴力close()) | ||
* epoll的边沿触发和水平触发有什么区别?(epoll的源码并不长,从源码的角度回答比较好) | ||
* epoll为什么高效,相比select和poll | ||
* HTTP报文都有哪些字段? | ||
* 假如服务器要升级,又不想让用户感觉到服务器升级了,该怎么做?(其实就是不间断的提供服务,参考nginx的平滑升级) | ||
* 有没有实现内存池? | ||
* 一个请求到来具体的处理过程是怎样的? | ||
* 线程的唤醒还有哪些方式? | ||
* 怎么检查内存泄漏的? | ||
* 用到了哪些智能指针和RAII机制,几种锁的区别是什么 | ||
* 任务队列是怎么实现的,除了加锁还有什么方式? | ||
* 如何解决死锁? | ||
* 怎么进行压测的? | ||
* 为什么要用非阻塞io? | ||
* 为什么要做这个项目? | ||
* Reactor模式是什么? |