客户端
动态扩展连接池、线程池优雅关闭、超时机制、健康检查等功能,并将代码模块化:
文件结构
HTTPClientProject/
├── ConnectionPool.h
├── ConnectionPool.cpp
├── TaskQueue.h
├── ThreadPool.h
├── main.cpp
工程代码主要分为以下几个模块:
ConnectionPool 类:
负责管理一组预先建立的 TCP 连接(SOCKET),并提供获取和释放连接的功能。
封装了 HTTP GET 和 POST 请求的发送与响应解析。
使用互斥锁确保线程安全。
TaskQueue 类:
实现了一个任务队列,支持异步添加和获取任务。
使用条件变量在任务队列为空时阻塞线程,直到有新任务。
ThreadPool 类:
管理一组工作线程,每个线程从任务队列中获取任务并执行。
支持优雅关闭功能,确保所有线程在析构时正确退出。
main.cpp:
程序入口,初始化连接池和线程池,并通过异步任务发送 HTTP 请求。
ConnectionPool加粗样式**.h**