检查异步IO状态
功能介绍
用于检测async_save、async_load等接口返回的异步Future对象是否已完成计算。调用is_ready不会阻塞,适合在轮询或超时控制场景下使用。
接口约束
- 接口为非阻塞调用。
- 输入必须是CcFuture类型对象,由async_save/async_load返回。
- 仅判断完成状态,不返回计算结果。
方法定义
ContextCaching.is_ready(ccfuture)
请求参数说明
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
ccfuture |
是 |
参数解释: 异步计算返回的 Future 对象。 约束限制: 必须为async_save或async_load 等接口返回的 CcFuture 实例,不能为None。 取值范围: 无。 默认取值: 无。 |
返回结果
类型 |
说明 |
---|---|
bool |
参数解释: 异步计算是否完成。返回True表示已完成;返回False表示尚未完成。 取值范围: 无。 |
代码样例
本示例用于多次下发异步加载KVCache的请求,并获取每个请求的最终执行结果。
- hash语义下的验证异步计算是否完成,参数:slot_mapping + hashes + offsets
# 设置请求的超时时间 option = CcKvOption(timeout=5000) block_size = 4 slot_mapping = [0, 1, 2, 3, 4, 5, 6, 7] hashes = [0xABCD, 0x1234] offsets = [4, 4] # 发起异步保存 future = cc.async_save(slot_mapping = slot_mapping, hashes = hashes, offsets = offsets, option = option) # 使用 is_ready 非阻塞检查 if cc.is_ready(future): print("async_save(hash) 已完成") else: print("async_save(hash) 仍在进行中")
- token语义下的验证异步计算是否完成,参数:slot_mapping + token_ids + mask
# 设置请求的超时时间 option = CcKvOption(timeout=5000) block_size = 4 slot_mapping = [0, 1, 2, 3, 4, 5] token_ids = [101, 102, 103, 104, 105, 106] mask = [0, 0, 0, 0, 1, 1] # 发起异步保存 future = cc.async_save(slot_mapping = slot_mapping, token_ids = token_ids,mask = mask, option = option) # 使用 is_ready 非阻塞检查 if cc.is_ready(future): print("async_save(token) 已完成") else: print("async_save(token) 仍在进行中")