渐进式编程课
鸿蒙 目录
第 51 课2026.09.11

验证并发释放完成后,后续关闭不会再次触发底层释放。

第 51 课:并发关闭成功状态测试

  • 日期:2026-09-11
  • 课程序号:第 51 课
  • 知识点:并发 close 后的幂等断言

用途

验证并发释放完成后,后续关闭不会再次触发底层释放。

核心概念

测试同时等待两个 close(),再追加第三次调用,并分别断言共享任务与成功状态。

最小代码或操作示例

ts
let count: number = 0
const handle: Handle = new Handle(async (): Promise<void> => { count += 1 })
await Promise.all([handle.close(), handle.close()])
await handle.close()
expect(count).assertEqual(1)

3~5 分钟练习

把底层释放改为可控 Promise,释放前检查次数。

参考答案

两个并发调用开始后次数为 1;释放并第三次关闭后仍为 1。

与上一课的联系

上一课实现成功状态;本课用并发与后续调用证明契约。