CompletableDeferred
文件说
此接口上的所有函数以及从它派生的所有接口上的所有函数都是线程安全的,并且可以从并发协程安全地调用而无需外部同步。
在任何协程之外调用这些函数是否安全?
For SendChannel<E>
, offer
and close
are notsuspend
等它们在语法上可以在协程之外调用,但这样做真的安全吗?
如果需要协程,最便宜的启动方式是什么:launch(Unconfined)
?
CompletableDeferred
文件说
此接口上的所有函数以及从它派生的所有接口上的所有函数都是线程安全的,并且可以从并发协程安全地调用而无需外部同步。
在任何协程之外调用这些函数是否安全?
For SendChannel<E>
, offer
and close
are notsuspend
等它们在语法上可以在协程之外调用,但这样做真的安全吗?
如果需要协程,最便宜的启动方式是什么:launch(Unconfined)
?
从任何地方拨打电话都是安全offer
的close
。这就是文档用“线程安全”短语所说的意思。
这些方法包含在通道 API 中的原因之一是能够将协程与基于各种回调和事件处理程序的常规非协程世界集成。您可以在本关于使用协程进行 UI 编程的指南中看到这种集成的实际示例。