资讯详情

CompletableDeferred:Kotlin 协程中用于一次性挂起通信的工具

📅 2026/10/21 2:32:41 | 华诺云谱 👁 阅读
CompletableDeferred:Kotlin 协程中用于一次性挂起通信的工具
很适合处理“等待某个操作完成后再继续”的场景CompletableDeferred 有两个状态未完成调用 await() 的协程会挂起等待。已完成await() 立即返回结果且后续 await() 都会拿到同一个结果。它不能重复设置值重复调用 complete() 会返回 false 并忽略第二次。import kotlinx.coroutines.* import kotlinx.coroutines.CompletableDeferred suspend fun main() { val deferred CompletableDeferredInt() // 协程 A等待结果 val jobA CoroutineScope(Dispatchers.Default).launch { println(A 等待中...) val value deferred.await() println(A 拿到结果: $value) } // 协程 B模拟耗时操作后完成 val jobB CoroutineScope(Dispatchers.Default).launch { println(B 开始干活) delay(1000) deferred.complete(42) println(B 完成设置结果) } jobA.join() jobB.join() }输出结果A 等待中... B 开始干活 B 完成设置结果 A 拿到结果: 42
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑