MST

星途 面试题库

面试题:Kotlin协程的基础概念与简单应用

请简要描述Kotlin协程中`CoroutineScope`、`launch`和`suspend`关键字的作用,并给出一个使用`launch`创建协程,在协程内部执行一个`suspend`函数的简单示例代码。
42.4万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试

CoroutineScope

CoroutineScope 定义了一个协程的作用域,它决定了协程的生命周期。通过实现 CoroutineScope 接口或使用 CoroutineScope 类型的对象,可以创建和管理一组相关的协程。当 CoroutineScope 被取消时,所有在该作用域内启动的协程也会被取消。

launch

launchCoroutineScope 的扩展函数,用于在指定的 CoroutineScope 中启动一个新的协程。它返回一个 Job 对象,通过这个 Job 对象可以控制协程的生命周期(如取消协程)。launch 启动的协程是异步执行的,不会阻塞当前线程。

suspend

suspend 关键字用于标记一个挂起函数。挂起函数是一种特殊的函数,它可以暂停执行,释放当前线程,直到某个条件满足(如异步操作完成)后再恢复执行。只有在协程内部或其他挂起函数中才能调用挂起函数。

示例代码

import kotlinx.coroutines.*

fun main() = runBlocking {
    val scope = CoroutineScope(Job())
    scope.launch {
        performSuspendOperation()
    }
}

suspend fun performSuspendOperation() {
    delay(1000) // delay 是一个挂起函数
    println("Suspend operation completed")
}