---
title: HLT_thread_create_from_pool
description: "在指定线程池上创建线程。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_ksl_16_0084.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_ksl_16_0084.html
indexId: 8b69eaba206b54ceac9478e8a9fbe6b940577c11330d494713d8e6394e3be77074
---
# HLT_thread_create_from_pool

在指定线程池上创建线程。

#### 接口定义

int HLT_thread_create_from_pool(HTL_thread_pool_t thread_pool, HTL_thread_t *thread, const HTL_thread_attr_t *thread_attr, void *(*thread_func)(void *), void *thread_args);


#### 描述

HLT_thread_create_from_pool()创建一个新的用户级线程ULT，由属性attr给定，将其与线程池thread_pool关联，并通过thread返回其句柄。此函数将创建的ULT放入线程池thread_pool中。当ULT线程thread被调度时，将参数args传递给线程执行函数thread_func()。

attr可以由HTL_thread_attr_create()创建。如果用户设置attr为HTL_THREAD_ATTR_NULL，则使用默认的线程属性。此函数会复制attr，因此用户可以在函数返回后释放attr。

如果thread为NULL，则将创建一个未命名的ULT。未命名的ULT在完成thread_func()时自动释放。否则，thread必须由HTL_thread_free()显式释放。


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| thread\_pool | HTL\_thread\_pool\_t \* | 线程池句柄地址。 | 输入 |
| thread | HTL\_thread\_t \* | ULT句柄。 | 输出 |
| thread\_attr | HTL\_thread\_attr\_t \* | ULT的属性。 | 输入 |
| thread\_func | void \*(\*thread\_func)(void \*) | 新的ULT执行函数。 | 输入 |
| thread\_args | void \* | thread\_func的入参。 | 输入 |


#### 返回值

- HTL_THREAD_SUCCESS：成功。
- 其他：失败。见错误码定义。


#### 示例

```
HTL_thread_pool_t *g_pools;
vector_scal_task_args_t *arg;
arg = (vector_scal_task_args_t *)args;
for (i = arg->start; i < arg->end; i++) {
HLT_thread_create_from_pool(g_pools[arg->id], NULL, HTL_THREAD_ATTR_NULL, task_function, (void *)&arg->ptr[i]);
}
```
