# 2024ConnectionPool **Repository Path**: youqian04/2024-connection-pool ## Basic Information - **Project Name**: 2024ConnectionPool - **Description**: 使用C++ STL编写MySQL线程池 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-07-28 - **Last Updated**: 2025-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 2024ConnectionPool #### 介绍 使用C++ STL编写MySQL线程池 #### 使用教程 1. 编译代码 ``` make ``` 2. 安装mysql数据库 需要根据实际修改mysql的ip地址及其端口号等信息 #### 知识点 1. MySQL数据库编程 2. 单例模式 连接池只需要一个示例 3. C++11多线程编程 4. 线程互斥 互斥锁操作 5. 线程同步通信和unique_lock 条件变量允许一个线程等待特定条件的满足,然后被另一个线程通知 std::unique_lock\ 确保在等待期间互斥锁被正确持有 6. 基于CAS的原子整形 记录连接所创建的Connection的总数量是原子操作 7. 智能指针shared_ptr 消费者获取的连接是智能指针,当消费者释放连接,并不删掉连接,而是归还连接池,因此需要重写shared_ptr的析构函数 8. lambda表达式 9. 生产者-消费者线程模型 生产者产生连接,消费者从连接池中获取连接,需要保证线程安全