Kotlin学习体会-协程的使用

初步使用kotlin协程的使用,协程相比线程,消耗更小

object CoroutineTest {
    const val TAG = "CoroutineTest"
    //runBlocking会阻塞主线程
    fun testCoroutine() = runBlocking{
        repeat(10)
        {
            Log.d(TAG, "Coroutine test $it thread id:${Thread.currentThread().id}")
            // TimeUnit.SECONDS.sleep(1)
            delay(1000)
        }
    }
    //launch不会阻塞主线程
    fun testLaunch() :Job {
        return GlobalScope.launch {
            testSuspend()
            delay(5000)
            Log.d(TAG, "launch end thread id:${Thread.currentThread().id}")
        }
    }
    //suspend会将方法挂起,不会阻塞此方法后面的代码执行
    suspend fun testSuspend() {
        Log.d(TAG, "test suspend")
        delay(1000)
    }

    fun testAsync() = GlobalScope.async {
        testSuspend()
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值