接上文《使用多进程处理客户请求》中描述,由于它存在严重的问题---超过当前的服务线程时,程序将不再进行处理。本文中结合之前的fork技术对其进行完善,主要的修改内容是如何新增子进程和如何删除子进程。新增子进程是在当前的所有子进程都在处理客户的请求时又有新的子进程的请求到达;删除子进程是在空闲的子进程过多时,为了释放系统资源。这两个值成为服务阈值(下阈值和上阈值)。
父进程如何能够得知当前子进程的个数及其状态呢?父子进程将采用管道进行通信。
测试程序不变,测试时可以通过多个客户端进行连接。