可以在协程中创建一个新的作用域,但是不会启动新的协程; 在一个 coroutineScope 中可以启动多个协程 多个协程共享一个上下文对象[也就是都能够访问在 coroutineScope 内部创建的变量,会导致资源竞争的风险,需要注意] 当coroutineScope 作用域中的协程全部执行完毕后就会被销毁 而且这个协程作用域会在当前协程所在的线程...
如果当前协程一来GlobalScope中执行的任务 可以通过 GlobalScope.async 启动协程 @OptIn(DelicateCoroutinesApi::class)suspendfuntestGlobalScopeWithAsync(){suspend{valres=GlobalScope.async{for(iin0..3){delay(100)println("GlobalScope i = $i")}"done"}.await()println("start GlobalScope fun end res: $res...
协程Coroutine是 Kotlin 语言 中新出现的概念 , 在 Java 语言中没有 协程 是 基于 线程 的 , 是 轻量级 线程 ; 二、协程作用 协程主要作用如下 : 处理耗时任务 :耗时任务 通常需要 阻塞主线程 , 线程量级太重 , 耗时任务 推荐在协程中执行 ; 保证主线程安全 :从主线程中 安全地调用可能会挂起的函数 ; ...
kotlin中使用协程,是一定要跟协程作用域一起配合使用的,否则可能协程的生命周期无法被准确控制,造成内存泄漏或其他问题. 我们一般在安卓项目中使用协程作用域,可能会在BaseActtivity中new 一个MainScope(),并在onDestory时cancel掉,或者只在ViewModel中使用viewModelScope,然后会在ViewModel的onClose中自动cancel掉. 但我...