---
title: OmpThreadNum
description: "- 设置OMP并行多线程数："
url: https://www.hikunpeng.com/document/detail/zh/kunpengaccel/system-lib/ug-kvsip/kunpengaccel_kvsip_06_0030.html
sourcePath: /source/zh/kunpengaccel/system-lib/ug-kvsip/kunpengaccel_kvsip_06_0030.html
indexId: b7f3b63b557283eda204cb08f9ad55cc15f84e74a832f4e2fa11b239788b7db975
---
# OmpThreadNum

- 设置OMP并行多线程数：
  int32_t KVSIP_SetOmpThreadNum(int32_t num);


- 获取当前OMP并行多线程数：
  int32_t KVSIP_GetOmpThreadNum(void);


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| num | 要限定的线程数上限。 | 大于0 | 输入 |


#### 返回值

KVSIP_SetOmpThreadNum函数：

- 成功：返回0。
- 失败：返回-1。


KVSIP_GetOmpThreadNum函数：

返回值为OMP线程数。

#### 示例

```
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "kvsip.h"
#include "vsip.h"
#include "vsip_type.h"

void OmpThreadNumExample()
{
    int32_t originNum = KVSIP_GetOmpThreadNum();
    printf("KVSIP_GetOmpThreadNum originNum = %d\n", originNum);
    const int32_t num = 0x7;
    int32_t ret = KVSIP_SetOmpThreadNum(num);
    int32_t newNum = KVSIP_GetOmpThreadNum();
    printf("KVSIP_SetOmpThreadNum result = %d, newNum = %d\n", ret, newNum);
    int32_t resumeRet = KVSIP_SetOmpThreadNum(originNum);
    int32_t lastNum = KVSIP_GetOmpThreadNum();
    printf("resume omp resumeRet = %d, lastNum = %d\n", resumeRet, lastNum);
}

int main(void) {
    OmpThreadNumExample();
    return 0;
}
```

运行结果：

```
KVSIP_GetOmpThreadNum originNum = 1
KVSIP_SetOmpThreadNum result = 0, newNum = 7
resume omp resumeRet = 0, lastNum = 1
```
