文章目录
将多进程改为多线程的目的就是:服务端采用数据库连接池的方法去连接数据库,实现数据库的共享,这样就可以提升服务端的性能,响应速度也能提高。 (在修改之前,先拷贝一份服务端程序)
一、修改的注意事项
1.将创建多进程的函数改为创建多线程的函数
2.创建一个容器,存放子线程的socket
为什么要创建一个容器来存放子线程的socket呢?因为子线程的socket是局部变量,当主函数使用exit退出函数时,就不会释放局部变量。所以为了防止局部变量没有释放,每次创建一个子线程的socket连接,就将socket连接放入容器中。前面的文章有说明。
3.将原来多进程的程序的return修改为break
当一个线程出错时,我们不能采用return停止这个线程,这样会导致其他的线程也被停止。
4.makefile文件连接线程库
5.修改全局变量
多进程程序中,主要有的全局变量是业务请求参数,数据库连接对象,接收报文的缓冲区,发送报文的缓冲区。
现在要在线程的的处理主函数中将它们改为局部变量
5.1 业务请求参数
在多进程的程序中,我们将业务请求的声明和定义放在函数的外面。
现在要改为多线程,就是要将业务请求参数的结构体在函数外面声明,在函数内部定义,这样就是局部变量了。