文章目录
- 一、对后端开发的看法?
- 二、为什么要做静态http服务器?
- 三、为什么要使用ET模式?
- 四、多线程编程的注意事项
- 1、为什么要用多线程
- 2、多线程编程的特点
- 3、确保线程安全的几种方式
- 4、与多线程有关的编程方法
- 五、使用Linux系统有什么好处?
- 六、对云计算的看法?
- 七、服务器突然崩溃退出,怎么处理?
- 八、服务器突然运行很慢怎么处理?
- 九、线程池中只有几个线程能响应1万+的用户吗?
一、对后端开发的看法?
提起后端,不免要说到前端,前端主要是负责与用户直接打交道,更多的是做一些交互,用户的请求一般是提交到后端进行处理,后端主要负责逻辑处理。C++后端开发首先是要对C++语言比较熟悉;还要熟悉网络编程,因为有时候需要处理高并发任务;现在的后台程序一般是运行在linux操作系统上,所以需要了解linux操作系统的基本知识、工具的使用、代码的编译等等。最后如果熟悉一门脚本语言,会更利于工作了。
二、为什么要做静态http服务器?
了解基本网络服务器的开发过程,熟悉reactor模式、基本的网络编程方法、TCP/IP协议和HTTP协议、C++的语法、多线程以及Linux下的各种工具的使用。
三、为什么要使用ET模式?
ET模式由于数据到来才会,所以相比LT模式减少了触发次数,避免了busy-loop,效率会比LT模式高很多,但是编程也变得更复杂了。
由于采用ET模式,read、write和accept的时候必须采用循环的方式,直到error==EAGAIN为止,防止漏读等清况。
四、多线程编程的注意事项
1、为什么要用多线程
多线程可以发挥多核CPU的优势(并行执行),达到充分利用CPU的目的。因为多线程如果在单cpu中其实也是顺序执行的,只不过是系统帮我们切换执行顺序而已,其实并没有快。
2、多线程编程的特点
- 当前线程随时有可能被切换出去,或者说被抢占了,当我们使用公共资源的时候尤其要注意线程安全性,一般可以锁来保证线程安全。
- 多线程程序中事件的发生没有一个固定的顺序。
3、确保线程安全的几种方式
- 原子操作;
- 同步与锁;
- 使用可重入函数。
4、与多线程有关的编程方法
掌握多线程的创建与销毁、锁机制和条件变量的使用。
五、使用Linux系统有什么好处?
- Linux系统是开源的,这意味着我们可以对Linux系统进行定制化开发;
- Linux系统安全、稳定性强,很多服务端的程序都是跑在Linux系统上的。
六、对云计算的看法?
- 云计算就是一种位于云端的计算模式,把零散的硬件资源进行重新分配,我们在使用自己电脑的时候内存和性能都是有限制的,那么我们就可以申请云端服务器资源;
- 云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS)【硬件服务器租用】,平台即服务(PaaS)【软件的定制化应用】和软件即服务(SaaS【云服务器】)。
七、服务器突然崩溃退出,怎么处理?
在Linux系统下使用CoreDump调试,如果程序有段错误会在当前目录下生成core文件(ulimit -c unlimited),然后使用gdb调试core文件(gdb a.out core),找到Segmentation fault这些信息。
八、服务器突然运行很慢怎么处理?
先查看后台服务器的运行状态,包括磁盘,CPU,内存的使用情况等(top,free)。如果是磁盘满了,做好备份,清理下磁盘;如果是CPU的问题,查找下占用率较高的进程,kill掉与系统应用无关的进程。
还有一种情况可能是close_wait或者time_wait状态过多了,消耗了服务器的资源,使用netstat命令查看下网络连接的状态。
九、线程池中只有几个线程能响应1万+的用户吗?
可以,一个连接到来由线程池中某个线程去处理,处理完毕后回到线程池继续接收连接,如果响应很慢可以加大线程池中线程的数量。