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

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

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


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


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


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