此仓库包含多个项目,均为多线程实现,目前实现了 C语言版本的线程池和改进的基于CPP的线程池,以及一个 封装的数据库连接池。
对于线程池的基本思路:使用一个管理线程负责 创建线程、销毁线程、可以动态控制线程数量,当任务过多时,会动态的创建新线程,当任务很少时,会销毁部分线程。工作线程负责处理 工作任务,任务队列使用 环形队列维护,新的任务会被加入到 任务队列中,已完成的任务会被移除任务队列。
对于数据库连接池的基本思路:较多的使用了C++11 的特性,是在 C++特性的线程池的基础上,实现的对MySQL API 的封装和改进,使用数据库连接池解决在高并发场景下,频繁的处理操作所造成的资源消耗。