CoroutineScope Dispatchers.IO异步操作async返回函数,Kotlin

CoroutineScope Dispatchers.IO异步操作async返回函数,Kotlin

Kotlin 复制代码
import kotlinx.coroutines.*

fun myFun(a: Int, b: Int, retFun: (sum: Int) -> Unit) {
    println("分支myFun开始... ${System.currentTimeMillis()}")
    val task = CoroutineScope(Dispatchers.IO).async(start = CoroutineStart.LAZY) {
        println("myFun delay... ${System.currentTimeMillis()}")
        delay(3000)
        println("myFun delay end ${System.currentTimeMillis()}")
        a + b
    }

    CoroutineScope(Dispatchers.IO).launch {
        println("myFun launch... ${System.currentTimeMillis()}")
        val sum = task.await()
        retFun(sum)
        println("myFun retFun ${System.currentTimeMillis()}")
    }
    println("分支myFun结束 ${System.currentTimeMillis()}")
}

fun main(args: Array<String>) {
    println("主流程开始 ... ${System.currentTimeMillis()}")
    myFun(1, 2) { sum ->
        println("主流程等待结果返回...")
        println("main : $sum ${System.currentTimeMillis()}")
        println("主流程结果返回")
    }
    println("主流程结束 ${System.currentTimeMillis()}")


    Thread.sleep(5000)
}

主流程开始 ... 1703757127994

分支myFun开始... 1703757127995

分支myFun结束 1703757128042

主流程结束 1703757128042

myFun launch... 1703757128045

myFun delay... 1703757128046

myFun delay end 1703757131050

主流程等待结果返回...

main : 3 1703757131052

主流程结果返回

myFun retFun 1703757131052

Process finished with exit code 0

相关推荐
alexhilton3 小时前
Android上的ZeroMQ:用发布/订阅模式连接Linux服务
android·kotlin·android jetpack
Fate_I_C17 小时前
View Binding的基础使用
android·kotlin·viewbinding
zhangphil17 小时前
Android Coil 3 extend ImageRequest‘s custom method/function,Kotlin
android·kotlin
Empty-Filled18 小时前
Prompt改版后怎么回归:一套测试集和评分方法
回归·kotlin·prompt
阿巴斯甜1 天前
launch 和 async 内部都是串行,为什么还能实现并发?
kotlin
古怪今人1 天前
Gradle构建工具 Groovy/Kotlin DSL的现代化自动化构建工具
开发语言·kotlin·自动化
赏金术士1 天前
Kotlin 协程与挂起函数(Coroutines & suspend)入门到实战
android·开发语言·kotlin
赏金术士1 天前
Room + Flow 完整教程(现代 Android 官方方案)
android·kotlin·room·compose
赏金术士2 天前
Kotlin 协程面试题大全(Android 高频版)
android·开发语言·kotlin
赏金术士2 天前
Kotlin 协程底层原理(Continuation)详解
java·开发语言·kotlin