# 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 ```