Kotlin协程 SharingStarted

作用:用于定义在 shareIn 和 stateIn 操作符中启动和停止共享协程的策略。

这个函数接口提供了一组内置的策略
1. Eagerly

val Eagerly: SharingStarted

在这种共享模式下,共享立即开始,并且永不停止。即使没有订阅者,共享也会一直保持活跃。

2. Lazily

val Lazily: SharingStarted

在这种共享模式下,共享在第一个订阅者出现时开始,并且永不停止。即使没有订阅者,共享也会一直保持活跃。
3. WhileSubscribed

fun WhileSubscribed(
    stopTimeoutMillis: Long = 0, 
    replayExpirationMillis: Long = Long.MAX_VALUE
): SharingStarted

在这种共享模式下,共享在第一个订阅者出现时开始,而在最后一个订阅者消失时立即停止。可以设置 stopTimeoutMillis 来指定停止的超时时间,以及 replayExpirationMillis 来指定回放缓存的过期时间。许您对流的共享行为进行更灵活的控制,以满足您的特定需求

val sharingStarted = SharingStarted.WhileSubscribed(
    stopTimeoutMillis = 5000,  // 在第一个订阅者出现时开始,当最后一个订阅者消失后,等待 5 秒钟,然后停止共享
    replayExpirationMillis = 60000  // 缓存将在 1 分钟后过期
)

相关推荐

  1. Kotlin SharingStarted

    2024-01-26 14:14:03       57 阅读
  2. Kotlin

    2024-01-26 14:14:03       58 阅读
  3. kotlin学习总结

    2024-01-26 14:14:03       56 阅读
  4. 快速入门Kotlin

    2024-01-26 14:14:03       42 阅读
  5. kotlin相关

    2024-01-26 14:14:03       32 阅读
  6. Kotlin最佳实践

    2024-01-26 14:14:03       19 阅读
  7. Kotlin->Kotlin作用域

    2024-01-26 14:14:03       29 阅读
  8. Kotlin : Coroutines —简单应用

    2024-01-26 14:14:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 14:14:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 14:14:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 14:14:03       82 阅读
  4. Python语言-面向对象

    2024-01-26 14:14:03       91 阅读

热门阅读

  1. react函数式组件和类组件

    2024-01-26 14:14:03       60 阅读
  2. 自幂数 水仙花数

    2024-01-26 14:14:03       62 阅读
  3. k8s安全机制

    2024-01-26 14:14:03       53 阅读
  4. Python狄拉克δ函数

    2024-01-26 14:14:03       49 阅读
  5. MySQL的数据锁表(data_locks 表)

    2024-01-26 14:14:03       46 阅读