---
title: aclrtCreateContext
description: "在当前进程或线程中显式创建一个Context。同步接口。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_0038.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_0038.html
indexId: 571dd8027dd77d5d03fd6975be3ef040c8400629e459098d326a5f86fecc52df105
---
# aclrtCreateContext

#### 函数功能

在当前进程或线程中显式创建一个Context。同步接口。

对于Atlas 200/500 A2推理产品，该默认Context中包含2个Stream，1个默认Stream和1个执行内部同步的Stream。


#### 约束说明

支持以下使用场景：

- 若不调用aclrtCreateContext接口显式创建Context，那系统会使用默认Context，该默认Context是在调用aclrtSetDevice接口时隐式创建的。

  - 隐式创建Context：适合简单、无复杂交互逻辑的应用，但缺点在于，在多线程编程中，执行结果取决于线程调度的顺序。
  - 显式创建Context：推荐显式，适合大型、复杂交互逻辑的应用，且便于提高程序的可读性、可维护性。
- 在某一进程中指定Device，该进程内的多个线程可共用在此Device上显式创建的Context（调用  aclrtCreateContext
接口显式创建Context）。
- 若在某一进程内创建多个Context（Context的数量与Stream相关，Stream数量有限制，请参见  aclrtCreateStream
），当前线程在同一时刻内只能使用其中一个Context，建议通过  aclrtSetCurrentContext
接口明确指定当前线程的Context，增加程序的可维护性。


#### 函数原型

aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId)


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| deviceId | 输入 | 需创建Context的Device的ID。 |
| context | 输出 | Context的指针。 |


#### 返回值说明

返回0表示成功，返回其它值表示失败。


#### 参考资源

接口调用流程及示例，参见运行管理资源申请与释放。
