【九月打卡】第8天 C气象数据中心 13-10 数据库连接池的优化
- 课程信息
课程名称:C/C++气象数据中心实战,手把手教你做工业级项目
课程章节:13-8 数据库连接池的实现
主讲老师: 吴从周
- 课程内容
使用数据库连接池的方法进行优化
- 课程收获
1.判断连接是否超时,使用当前时间减去 数据库连接的时间
2.创建一个检测线程池的线程函数
3.每一个线程,默认在共享区中占有的空间为8M,可以使用ulimit -s修改。进程是资源分配的基本单位,而线程是调度的基本单位。
4.多线程的构建中,如果线程运行太快,主程序可能还来不及把线程的ID放入容器中,可能会出现找不到线程ID的情况,所以需要加入延迟。并且,多个线程之中, 只要有一个线程存在bug(如访问了非法地址引发的段错误) , 就会导致进程内的所有线程一起完蛋。在本程序中由于简单的创建和应用,虽然不会存在这类情况,但是在后续的学习和项目中需要加以注意。
5.并不是只有主线程才能创建线程, 被创建出来的线程同样可以创建线程。不存在类似于fork函数那样的父子关系, 大家都归属于同一个线程组, 进程ID都相等, group_leader都指向主线程, 而且各有各的线程ID。通过group_leader指针, 每个线程都能找到主线程。主线程存在一个链表头,后面创建的每一个线程都会链入到该双向链表中。
6.并非只有主线程才能调用pthread_detach函数, 其实任意线程都可以对同一线程组内的线程执行分离操作。