---
title: 同步与异步API说明
description: "CANN支持以下几类显式同步，调用此类接口后，主机线程会阻塞直到相关的任务执行完成。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_0020.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0020.html
indexId: 91ff7fe9c17a376475bc485e556832314e5643a3693c0c7ddbada4fa248776b268
---
# 同步与异步API说明

CANN支持以下几类显式同步，调用此类接口后，主机线程会阻塞直到相关的任务执行完成。

- 设备同步：例如aclrtSynchronizeDevice
  阻塞当前主机线程直到Device上所有显式或隐式创建的Stream都完成所有先前下发的任务。应该尽量少使用该函数，以免拖延主机运行。


- 流同步：例如aclrtSynchronizeStream
  阻塞当前主机线程直到指定的Stream中完成所有下发的任务。


- 事件同步：例如aclrtSynchronizeEvent
  阻塞当前主机线程直到指定的Event事件完成。属于更细粒度的同步。


对于异步接口，主机线程调用异步接口后仅代表下发任务，不代表任务执行成功，在任务未完成前，异步接口已向主机线程返回成功。用户需要显式调用以上同步接口阻塞主机线程，等待任务完成，否则可能会导致训练或推理等业务异常、Device断链掉卡等未知情况。
