HTL_thread_pool_create
创建线程池。
接口定义
int HTL_thread_pool_create(HTL_thread_pool_t *thread_pool, HTL_thread_pool_type_t pool_type, HTL_thread_pool_access_mode_t access_mode, bool is_auto);
描述
HTL_thread_pool_create()创建一个新的线程池,需指定池的类型pool_type、访问类型access_mode和自动释放标识is_auto,并通过thread_pool返回其句柄。
pool_type指明线程池的实现方式。有关详细信息,请参见枚举HTL_thread_pool_type_t。
access_mode指明对线程池的使用方式。HTL可以具有更受限制访问类型的池选择优化的实现,其中更严格访问类型为HTL_THREAD_POOL_ACCESS_MODE_PRIV。有关详细信息,请参见枚举HTL_thread_pool_access_mode_t。
- 如果is_auto为false,则thread_pool不会自动释放,因此thread_pool在使用后必须由HTL_thread_pool_free()释放,除非thread_pool与主执行器的主调度器关联。
- 如果is_auto为true,则当释放与thread_pool关联的所有调度器时,thread_pool将自动释放。如果用户没有将newpool与调度器关联,则用户需要手动释放thread_pool。
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
thread_pool |
HTL_thread_pool_t * |
创建线程池句柄的地址。 |
输出 |
pool_type |
HTL_thread_pool_type_t |
线程池类型。 |
输入 |
access_mode |
HTL_thread_pool_access_mode_t |
线程池的访问类型。 |
输入 |
is_auto |
bool |
自动释放池标识。 |
输入 |
返回值
- HTL_THREAD_SUCCESS:成功。
- 其他:失败。见错误码定义。
示例
HTL_thread_pool_t *pools = (HTL_thread_pool_t *)malloc(sizeof(HTL_thread_pool_t) * num_executors); for (i = 0; i < num_executors; i++) { HTL_thread_pool_create(HTL_THREAD_POOL_FIFO, HTL_THREAD_POOL_ACCESS_MODE_MIMO, true, &g_pools[i]); }
父主题: 线程池函数