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()

该方式比较常用 。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容