kotlin协程学习笔记

kotlin协程

  companion object {
        @JvmStatic
        fun main(args: Array<String>) = runBlocking {
            val p = StringBuilder()
            p.append("1")
            var list = ArrayList<String>()
            println("""开始""")
            println("" + list!!.size)
            println("" + list?.size)

            launch {
                val a = GlobalScope.launch {
                    val thread1 = withContext(Dispatchers.IO) {
                        println("thread1" + Thread.currentThread().name)
                        Thread.sleep(1000)
                    }

                    val thread2 = withContext(Dispatchers.Unconfined) {
                        println("thread2" + Thread.currentThread().name)
                    }
                }

                val b = async {
                    Thread.sleep(5000)
                    println("async run")
                }
                a.join()
                println("I m done")
            }
            println("finish")
        }
    }

创建两个协程 a ,b a有两个子耗时的suspend函数

这句话我是在中文社区看到的 不是很理解,是不是翻译错了 父协程并不会主动等待子协程完成
async{}是可以开启一个异步协程的,相对于launch{},async{}返回的是带返回值的Job,public interface Deferred : Job T就是返回值,通过await获得该返回值。

launch{
val a = async{ 耗时1s …}.await();
val b = async{ 耗时5s …}.await();
}
}
后续继续学习补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值