上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 186 下一页
摘要: 一,已结束协程作父协程 代码: //处理按钮点击事件 binding.button1.setOnClickListener { runBlocking { println("main start") // 1 val job = launch { // 协程1 println("launch 1 s 阅读全文
posted @ 2025-08-16 08:09 刘宏缔的架构森林 阅读(4) 评论(0) 推荐(0)
摘要: 一,代码: //处理按钮点击事件 binding.button2.setOnClickListener { runBlocking { val parentJob = launch(CoroutineName("myblock")) { val job1 = launch { println("协程 阅读全文
posted @ 2025-08-16 08:09 刘宏缔的架构森林 阅读(29) 评论(0) 推荐(0)
摘要: 一,sequence有take时 代码: //处理按钮点击事件 binding.button3.setOnClickListener { val list1 = (1..1000) .asSequence() .filter { println("filter: ${it}") it % 2 == 阅读全文
posted @ 2025-08-09 18:21 刘宏缔的架构森林 阅读(11) 评论(0) 推荐(0)
摘要: 一,sequence的运行: 代码: //处理按钮点击事件 binding.button1.setOnClickListener { val list = listOf(1, 2, 3, 4, 5) val seq1 = list.asSequence() seq1.filter { println 阅读全文
posted @ 2025-08-09 18:21 刘宏缔的架构森林 阅读(18) 评论(0) 推荐(0)
摘要: 一,四个特点: 终端操作才会执行整个操作链: 如果不调用终端操作(如 toList、forEach),则不会执行任何操作;Sequence 通常是一次性的: 终端操作后不能再次使用,避免重复使用同一 Sequence;不缓存结果: Sequence 每次遍历都会重新计算,若需复用结果,应先转换为集合 阅读全文
posted @ 2025-08-09 13:41 刘宏缔的架构森林 阅读(14) 评论(0) 推荐(0)
摘要: 一,代码: //处理按钮点击事件 binding.button1.setOnClickListener { //从现有集合转换 val list = listOf(1, 2, 3) val seq1 = list.asSequence() println("seq1") seq1.forEach { 阅读全文
posted @ 2025-08-09 13:41 刘宏缔的架构森林 阅读(21) 评论(0) 推荐(0)
摘要: 一,两种超时处理方式 使用 withTimeout 或 withTimeoutOrNull 可以指定 Job 任务的超时时间。两者的区别在于: withTimeout 函数会在超时后抛出一个超时异常 TimeoutCancellationException withTimeoutOrNull 函数会 阅读全文
posted @ 2025-08-09 13:41 刘宏缔的架构森林 阅读(30) 评论(0) 推荐(0)
摘要: 一,例子:用cancel()取消job 代码: //处理按钮点击事件 binding.button1.setOnClickListener { runBlocking { val job = launch { try { println("try start") delay(1000) printl 阅读全文
posted @ 2025-08-09 13:41 刘宏缔的架构森林 阅读(21) 评论(0) 推荐(0)
摘要: 一,例子: 代码: //处理按钮点击事件 binding.button1.setOnClickListener { runBlocking { val job = launch { try { println("try start") delay(1000) println("try end") } 阅读全文
posted @ 2025-08-09 13:41 刘宏缔的架构森林 阅读(24) 评论(0) 推荐(0)
摘要: 一,例子:不用yield()挂起当前任务 说明:yield在协程中就可以简单的理解为,挂起当前任务(注意是任务),释放此线程的monitor让其他正在等待的任务公平的竞争,去获得执行权。 代码: 定义线程和函数 val singleDispatcher = newSingleThreadContex 阅读全文
posted @ 2025-08-09 13:41 刘宏缔的架构森林 阅读(44) 评论(0) 推荐(0)
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 186 下一页