Browse Source

feat : 提供默认开启辅助线程的配置参数

chunelfeng 3 years ago
parent
commit
1928fcfa7f
5 changed files with 25 additions and 4 deletions
  1. +9
    -1
      CMakeLists.txt
  2. +5
    -2
      README.md
  3. +8
    -0
      src/UtilsCtrl/ThreadPool/UThreadPool.cpp
  4. +1
    -0
      src/UtilsCtrl/ThreadPool/UThreadPoolConfig.h
  5. +2
    -1
      src/UtilsCtrl/ThreadPool/UThreadPoolDefine.h

+ 9
- 1
CMakeLists.txt View File

@ -1,7 +1,15 @@
message("* * * * * * * * * * * * * * * * *")
message("* _____ _______ _____ *")
message("* / ____| |__ __| | __ \\ *")
message("* | | | | | |__) | *")
message("* | | | | | ___/ *")
message("* | |____ | | | | *")
message("* \\_____| |_| |_| *")
message("* * * * * * * * * * * * * * * * *")
cmake_minimum_required(VERSION 3.2.5)
project(CThreadPool VERSION 1.0.0)
project(CThreadPool VERSION 1.0.1)
set(CMAKE_CXX_STANDARD 14)

+ 5
- 2
README.md View File

@ -16,14 +16,14 @@
由于是CGraph项目中的剥离出来的功能类,故在项目中保留了多处 `CGRAPH_*` 的命名方式,仅将 namespace 修改为 `CTP`,预计今后与CGraph相互独立更新。
本项目参考了[《C++并发编程实战(第二版)》](https://nj.gitbooks.io/c/content/) 中的部分内容,和github上部分相关的优秀工程。并在此基础上进行大量的改动、扩展和优化,在功能、性能和易用性上均有较大的提升。
本项目参考了[《C++并发编程实战(第二版)》](https://nj.gitbooks.io/c/content/) 中的部分内容,和github上的一些优秀实现。并在此基础上进行大量的改动、扩展和优化,在功能、性能和易用性上均有较大的提升。
在开发过程中,也沉淀了详细的说明文档(见下方 <b>推荐阅读</b>),以便于大家快速了解代码和思路,也请大家不吝指教。
## 二. 编译说明
* 本工程支持MacOS、Linux和Windows系统,无任何第三方依赖。推荐使用C++14(默认)或以上版本,不支持C++11或以下版本
* 使用CLion作为IDE的开发者,或使用Visual Studio 15(或以上版本)作为IDE的开发者,打开CMakeLists.txt文件作为工程,即可编译通过
* 使用`CLion`或使用`Visual Studio 15`(或以上版本)作为IDE的开发者,打开`CMakeLists.txt`文件作为工程,即可编译通过
* Linux环境开发者,在命令行模式下,输入以下指令,即可编译通过
```shell
@ -73,6 +73,9 @@ void tutorial() {
* 提供线程池基本功能
* 提供对应的tutorial信息
[2022.10.07 - v1.0.1 - Chunel]
* 提供默认开启辅助线程的配置
------------
#### 附录-2. 联系方式
* 微信: ChunelFeng

+ 8
- 0
src/UtilsCtrl/ThreadPool/UThreadPool.cpp View File

@ -63,6 +63,14 @@ CStatus UThreadPool::init() {
}
CGRAPH_FUNCTION_CHECK_STATUS
/**
*
* n个辅助线程使 pool中 priority_queue
* 0
*/
status = createSecondaryThread(config_.secondary_thread_size_);
CGRAPH_FUNCTION_CHECK_STATUS
is_init_ = true;
CGRAPH_FUNCTION_END
}

+ 1
- 0
src/UtilsCtrl/ThreadPool/UThreadPoolConfig.h View File

@ -17,6 +17,7 @@ CGRAPH_NAMESPACE_BEGIN
struct UThreadPoolConfig : public UThreadObject {
/** 具体值含义,参考UThreadPoolDefine.h文件 */
int default_thread_size_ = CGRAPH_DEFAULT_THREAD_SIZE;
int secondary_thread_size_ = CGRAPH_SECONDARY_THREAD_SIZE;
int max_thread_size_ = CGRAPH_MAX_THREAD_SIZE;
int max_task_steal_range_ = CGRAPH_MAX_TASK_STEAL_RANGE;
int max_local_batch_size_ = CGRAPH_MAX_LOCAL_BATCH_SIZE;

+ 2
- 1
src/UtilsCtrl/ThreadPool/UThreadPoolDefine.h View File

@ -52,7 +52,8 @@ static const int CGRAPH_LONG_TIME_TASK_STRATEGY = -101;
/**
* 线
*/
static const int CGRAPH_DEFAULT_THREAD_SIZE = (CGRAPH_CPU_NUM > 0) ? CGRAPH_CPU_NUM : 8; // 线
static const int CGRAPH_DEFAULT_THREAD_SIZE = 8; // 线
static const int CGRAPH_SECONDARY_THREAD_SIZE = 0; // 线
static const int CGRAPH_MAX_THREAD_SIZE = (CGRAPH_DEFAULT_THREAD_SIZE * 2) + 1; // 线
#ifndef _WIN32
static const int CGRAPH_MAX_TASK_STEAL_RANGE = 2; //

Loading…
Cancel
Save