完成并发处理请求的三种方式:多进程方式、多线程方式、异步方式
多进程方式:服务器每当接收到一个客户端时,就由服务器主进程生成一个子进程出来和该客户端建立连接进行交互,直到断开连接,该子进程就结束了。
优点:设计和实现相对简单,各个子进程之间相互独立,处理客户端请求的时候彼此不受干扰,当一个子进程有问题时不会影响到其他进程,当子进程退出时,其占用资源会被操作系统回收,不会留下任何垃圾。
缺点:操作系统中生成一个子进程需要进行内存复制等操作,在资源和时间上产生了很大的开销,因此,当面对大量连接请求时,就会对系统资源造成压力,导致系统性能下降。
改进方式:采用进程池,预先生成一些子进程放入进程池中,当有请求到来时,主进程分配一个子进程和该客户端进行交互,交互完成后,该进程不结束,而是被主进程放入进程池中管理起来,等待下次客户端请求的到来。
多线程方式:它和多进程方式类似,它是指服务器每接收到一个客户端请求时,有服务器主进程派生一个线程和客户端进行交互。