Kotlin 协程的简单使用

Kotlin 协程的简单使用

1. 关于协程

协程(Coroutines)和线程(Threads)是两个完全不同的概念,简单来说协程跑在线程中,线程跑在进程中。

2. Android 中的简单使用

1. 导入

implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.5"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.5" // Android

2. 协程的创建

  • 方式1:通过 runBlocking() 顶层函数创建
runBlocking{
    // do something
}

该方法会阻塞当前线程来等待,在开发过程中很少用的到。

  • 方式2:通过 GlobalScope.launch() 创建
val job: Job = GlobalScope.launch {
    // do something
}

// 可以调用 cancel() 方法取消
job.cancel()

该方法创建的生命周期会与 App 的生命周期一致,它与 runBlocking() 的区别在于不会阻塞线程,但是在 Android 开发中也不常使用。

  • 方式2:通过 CoroutineContext 创建一个 CoroutineScope 对象
val job = Job()
val scope = CoroutineScope(Dispatchers.Main + job)
scope.launch{
    // do something (在主线程中执行)
}

// 可以调用 cancel() 方法取消
job.cancel()

该方式比较常用 。

你可能感兴趣的:(Kotlin 协程的简单使用)