CompletableDeferred
文档显示
该接口上的所有函数以及由此派生的所有接口上的所有函数都是线程安全的,并且可以在没有外部同步的情况下从并发协同中安全地调用。
在任何协同线之外调用这些函数安全吗?
对于SendChannel<E>
来说,offer
和close
不是suspend
,因此它们可以在语法上被称为协同线,但这样做是否安全?
如果需要一个协同线,那么最便宜的启动方法是什么:launch(Unconfined)
发布于 2017-12-06 20:53:44
从任何地方调用offer
和close
都是安全的。这就是文档用“是线程安全”短语来表示的意思。
这些方法被包含到通道API中的原因之一是为了支持协同与基于各种回调和事件处理程序的常规非协同世界的集成。您可以在这个协同用户界面编程指南中看到这种集成的实际示例。
https://stackoverflow.com/questions/47654180
复制相似问题