kotlin: 协程作用域

一,代码:

        //处理按钮点击事件
        binding.button1.setOnClickListener {
            runBlocking {
                // 仅用于测试,生成环境不要使用这么简易的CoroutineScope
                val scope = CoroutineScope(Job())

                scope.launch {
                    logX("第一个协程 start!")
                    delay(1000L)
                    logX("第一个协程 end!") // 不会执行
                }

                scope.launch {
                    logX("第二个协程 start!")
                    delay(1000L)
                    logX("第二个协程 end!") // 不会执行
                }

                scope.launch {
                    logX("第三个协程 start!")
                    delay(1000L)
                    logX("第三个协程 end!") // 不会执行
                }

                delay(500L)

                scope.cancel()    //取消了作用域内3个协程的运行

                delay(1000L)
            }
        }

说明: CoroutineScope,也就是“协程作用域”,
CoroutineScope 最大的作用,就是可以方便我们批量控制协程

二,运行结果:

作用域中的三个协程,都没有执行到end字串的打印

 

posted @ 2025-07-26 11:38  刘宏缔的架构森林  阅读(21)  评论(0)    收藏  举报