kotlin:协程可以在不同的线程之间切换

一,代码:

        //处理按钮点击事件
        binding.button2.setOnClickListener {
            runBlocking(Dispatchers.IO) {
                repeat(3) { index ->
                    launch {
                        //println()
                        repeat(3) {
                            println("第"+index+"个协程:"+Thread.currentThread().name)
                            delay(100)
                        }
                    }
                }
            }
        }

说明:实际运行时,可以看到:

协程虽然运行在线程之上,但协程并不会和某个线程绑定,
在某些情况下,协程是可以在不同的线程之间切换的

二,测试效果:

可以看到第0个协程运行在DefaultDispatcher-worker-3这个线程上,

第1个协程运行在: DefaultDispatcher-worker-2/DefaultDispatcher-worker-4/DefaultDispatcher-worker-7 这三个线程上

第2个协程运行在: DefaultDispatcher-worker-3/DefaultDispatcher-worker-4 这两个线程上

 

posted @ 2025-08-02 14:59  刘宏缔的架构森林  阅读(24)  评论(0)    收藏  举报