-
GlobalScope - 全局作用域,生命周期与应用程序一致
-
CustomScope - 自定义作用域,可以控制其生命周期
-
runBlocking - 阻塞当前线程直到协程完成
-
coroutineScope - 挂起函数,创建一个子作用域
-
supervisorScope - 子协程失败不会影响其他子协程

import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
import kotlinx.coroutines.*
import java.time.LocalTime
import java.time.format.DateTimeFormatter
// 定义不同类型的协程作用域
class CoroutineScopeDemo {
// 全局作用域 - 不推荐在生产代码中使用
fun globalScopeExample() {
GlobalScope.launch {
log("GlobalScope 启动的协程")
delay(2000)
log("GlobalScope 协程完成")
}
}
// 自定义作用域
private val customScope = CoroutineScope(Dispatchers.Default + CoroutineName("CustomScope"))
fun customScopeExample() {
customScope.launch {
log("CustomScope 启动的协程")
delay(1500)
log("CustomScope 协程完成")
}
}
// 使用 runBlocking - 会阻塞当前线程
fun runBlockingExample() {
log("runBlocking 开始")
runBlocking {
launch {
log("runBlocking 内部的协程")
delay(1000)
log("runBlocking 内部协程完成")
}
}
log("runBlocking 结束")
}
// 使用 coroutineScope - 挂起函数,不会阻塞线程
suspend fun coroutineScopeExample() {
log("coroutineScope 开始")
coroutineScope {
launch {
&nb
Kotlin协程作用域详解

最低0.47元/天 解锁文章
1235

被折叠的 条评论
为什么被折叠?



