Kotlin Flow实现多路复用

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin Flow实现多路复用相关的知识,希望对你有一定的参考价值。

    @Test
    fun `test select flow`() = runBlocking<Unit> 
        //函数 -》 Flow<协程> -> Flow合并

        val name = "guest"
        coroutineScope 
            listOf(::getUserFromLocal, ::getUserFromLocal2).map  kFunction1 ->     //遍历调用
                //调用反射 需要添加依赖
                //    implementation 'org.jetbrains.kotlin:kotlin-reflect:1.7.0'

                kFunction1.call(name)
            .map  deferred ->
                flow  emit(deferred.await()) 
            .merge()   //多个flow合并成一个flow
                .collect  user -> //末端操作符
                    println(user)
                

        


    

 

以上是关于Kotlin Flow实现多路复用的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 协程协程中的多路复用技术 ② ( select 函数原型 | SelectClauseN 事件 | 查看挂起函数是否支持 select )

Kotlin select 多路复用 by Channel

IO多路复用, 基于IO多路复用+socket实现并发请求(一个线程100个请求), 协程

python协程和异步IO——IO多路复用

IO多路复用/基于IO多路复用+socket实现并发请求/协程

39.IO多路复用(用select实现伪并发)