美文网首页
kotlin协程,什么是协程,它有什么作用,怎么使用协程

kotlin协程,什么是协程,它有什么作用,怎么使用协程

作者: 码农ing | 来源:发表于2021-07-12 15:40 被阅读0次

技术是永无止境的,需要不断地学习总结。


什么是协程?

协程就像非常轻量级的线程。线程是由系统调度的,线程切换或线程阻塞的开销都比较大。而协程依赖于线程,但是协程挂起时不需要阻塞线程,几乎是无代价的,协程是由开发者控制的。所以协程也像用户态的线程,非常轻量级,一个线程中可以创建任意个协程。

1. GlobalScope 的使用(不推荐),绑定的为应用的整个生命周期,GlobalScope是生命周期是process级别的,即使Activity或Fragment已经被销毁,协程仍然在执行。所以需要绑定生命周期。

添加依赖如下:

implementation"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"

implementation"org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9"

kotlin 中 GlobalScope 类提供了几个创建协程的构造函数:

launch: 创建协程

async : 创建带返回值的协程,返回的是 Deferred 类

withContext:不创建新的协程,指定协程上运行代码块

runBlocking:不是 GlobalScope 的 API,可以独立使用,区别是 runBlocking 里面的 delay 会阻塞线程,而 launch 创建的不会

2、lifecycleScope (推荐使用) lifecycleScope只能在Activity、Fragment中使用,会绑定Activity和Fragment的生命周期

lifecycleScope会绑定调用者的生命周期,因此通常情况下不需要手动去停止

添加依赖如下:

 implementation'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0'//lifecycleScope

implementation'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'//viewModelScope

1.在不使用回调的前提下完成来线程的切换,代码看上亲也是干净整洁很多。

2.因为线程没有上下文,不能控制线程执行完成后应该回到哪里,但是协程完全帮我们实现自动化,执行完毕自动回到上下文线程中,一般情况下是主线程,可以通过设置来决定要回到哪个线程中。

3.协程可以通过suspend关键字来标志耗时操作,通过编译器来帮助我们避免一些性能上的问题。


相关文章

  • kotlin协程,什么是协程,它有什么作用,怎么使用协程

    技术是永无止境的,需要不断地学习总结。 什么是协程? 协程就像非常轻量级的线程。线程是由系统调度的,线程切换或线程...

  • kotlin协程

    1:什么是协程,kotlin协程是什么。 2:kotlin开启协程的方式 launch async+await两...

  • Python并发编程系列之协程!

    1 引言 2 协程的意义 2.1 什么是协程 2.2 协程的作用 2.3 相关概念 3 定义协程 4 使用协程 4...

  • Android中对Kotlin Coroutines(协程)的理

    一、协程是什么、协程的作用是什么 本质上Kotlin协程是一个库,就像RxJava、Butterknife这些第三...

  • Kotlin 协程

    一、关于协程 协程是Kotlin中最重要、最难学的一块! 为什么协程如此重要? 协程是 Kotlin 对比 Jav...

  • Kotlin协程它不香吗?

    本博客的目的: 知道Kotlin协程是什么,为什么要用Kotlin协程 快速上手Kotlin协程 抓住核心,避免被...

  • Kotlin 协程基本概念

    目录1、什么是 Kotlin 协程2、场景举例3、如何使用 Kotlin 协程4、实现第一个协程5、Corouti...

  • 安卓协程那些事儿

    本系列文章都使用 Kotlin 作为描述语言 协程是什么?协程用来做什么?怎么用?作为安卓开发需要知道的协程知识 ...

  • Kotlin 协程

    深入剖析 Kotlin 协程 什么是协程 协程是什么?可以看看知乎上的大佬们怎么说。 https://www.zh...

  • Kotlin-Coroutine协程初探-扫盲

    什么是协程? 轻量级线程, 用户态的, 很像线程但又不是线程。 什么是kotlin中的协程? 协程是Kotlin官...

网友评论

      本文标题:kotlin协程,什么是协程,它有什么作用,怎么使用协程

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