美文网首页
Kt协程基础知识点

Kt协程基础知识点

作者: _好好学习 | 来源:发表于2020-05-17 18:04 被阅读0次
    1. suspend函数只能在CoroutineScope(协程作用域)中,或者另外一个suspend函数中调用;
    2. runBlocking会启动一个协程并且阻塞当前线程(即使是在另一个线程执行协程)直到其中的代码都执行;
    3. launch表示启动一个新的协程并且不阻塞当前线程;
    4. launch、runBlocking都不是suspend函数,runblocking不会等待非suspend函数;
    5. runBlocking不会等待非suspend函数;
    6. launch函数是CoroutineScope的方法,也就是说如果调用launch必须要有CoroutineScope对象;
    7. launch会返回一个Job对象,Job的join()是suspend函数,它的作用是挂起当前协程直到完成;
    8. async和launch类似,都是创建一个新的协程,async可以立即启动也可以惰性启动;
    9. async会返回一个Deferred对象,Deferred的await()会阻塞当前线程,等待计算结果并返回;
    10. withContext没有默认的调度器,必须指定一个协程调度器,效果类似于async{}.await()
    • async适用于需要多次调用并且需要知道结果的场景,如多任务下载;withContext适用于不需要多次调用只需知道结果的场景,如网络请求

    相关文章

      网友评论

          本文标题:Kt协程基础知识点

          本文链接:https://www.haomeiwen.com/subject/ifvsohtx.html