# PixelThreadPool
**Repository Path**: far-view/pixel-thread-pool
## Basic Information
- **Project Name**: PixelThreadPool
- **Description**: 基于C++11语言层级的线程池,支持fixed模式和cached模式!
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-10-25
- **Last Updated**: 2025-02-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## C++11语言层级的线程池
- 基于C++11语言层的线程池
- 支持fixed和cached模式的线程池定制
- 基于可变参模板支持用户提交各种不同类型的任务!
### 基本概念
- 并发:单核,多个线程分配不同时间片 → “看起来共同执行”
- 并行:多核,真正的共同执行
- IO密集型:程序里面的指令涉及一些IO操作,比如设备、文件、网络操作(等待客户端连接IO操作是可以阻塞程序)
- CPU密集型:程序里面的指令都是做计算用的
- fixed模式线程池:线程池里面的线程个数是固定不变的,一般是ThreadPool创建时根据当前机器的CPU核心数量进行指定
- cached模式线程池:线程池里面的线程个数是可动态增长的,根据任务的数量动态的增加线程的数量
注:多线程程序一定好吗?不一定(对于多核系统而言,多线程程序对于IO密集型和CPU密集型都是适合的;对于单核系统而言,IO密集型程序是适合的,CPU密集型的程序不适合 - 线程的调度有额外开销。)
注:线程越多越好吗?不一定(线程的创建和销毁都是非常“重”的操作,业务端频繁创建和销毁线程资源消耗较大;线程栈本身占用大量内存,每个线程都需要线程栈;线程的上下文切换要占用大量时间。)
### 编译注意事项
- Windows平台,要使用Mingw的POSIX线程模式。
```bash
mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make
```
- Linux平台
```bash
mkdir build
cd build
cmake ..
make
```