Kotlin 开发中的并发、外部库与 XML 处理
1. 并发编程中的任务取消与异常处理
在并发编程中,任务的取消和异常处理是重要的部分。
1.1 任务取消示例
从日志记录可以看到,父任务 l11 及其子任务 l111 都被取消了,标签 F 、 G 和 H 从未被执行到。
11:40:35.896: C
11:40:36.896: I
11:40:36.898: D
11:40:36.899: E
11:40:37.394: X2
11:40:37.395: X3
练习 :在前面的示例中,移除 cancel() 语句,而是在标签 E 之后的 delay() 中添加 0.5 秒的超时。我们可以推测,日志记录可能会与使用 cancel() 语句时不同。
1.2 不可取消代码块
如果要确保一段代码即使包含挂起函数调用也不会被取消,可以将其包装在特殊的新上下文中:
withContext(NonCancellable) {
// 不可取消的代码
}
超级会员免费看
订阅专栏 解锁全文

719

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



