---
title: HTL_thread_free
description: "释放线程。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengaccel/system-lib/htl/kunpengaccel_ksl_16_0086.html
sourcePath: /source/zh/kunpengaccel/system-lib/htl/kunpengaccel_ksl_16_0086.html
indexId: 2d6e59b1f4455d65fcfd0bf7dc8595b38b8c3daa5a31205cd56c29b45f6b07ea68
---
# HTL_thread_free

释放线程。

#### 接口定义

int HTL_thread_free(HTL_thread_t *thread);


#### 描述

HTL_thread_free()用于释放轻量级线程ULT的thread资源，并将thread设置为HTL_THREAD_NULL。如果thread仍在运行，则此例程将在thread上阻塞，直到thread终止。

由于未命名的ULT将在终止后立即释放，因此无需通过此例程释放未命名的ULT。此例程无法释放主ULT或主调度器的ULT。只有一个调用者可以加入或释放同一ULT。


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| thread | HTL\_thread\_t \* | 线程句柄的地址。 | 输入/输出 |


#### 返回值

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


#### 示例

```
/* Create Thread */
    for (i = 0; i < num_threads; i++) {
        arg[i] = i;
        ret = HTL_thread_create(&threads[i], NULL, thread_create, &arg[i]);
    }

    /* Join and free ULTs */
    for (i = 0; i < num_threads; i++) {
        void* retval;
        ret = HTL_thread_join(&threads[i], &retval);
        ret = HTL_thread_free(&threads[i]);
    }
```
