摘要: select 表达式(实验性的) select 表达式可以同时等待多个挂起函数,并 选择 第⼀个可⽤的。 在通道中 select 我们现在有两个字符串⽣产者:fizz 和 buzz 。其中 fizz 每 300 毫秒⽣成⼀个“Fizz”字符串: fun CoroutineScope.fizz() = 阅读全文
posted @ 2021-03-24 14:01 王世桢 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 共享的可变状态与并发 协程可⽤多线程调度器(⽐如默认的 Dispatchers.Default)并发执⾏。这样就可以提出所有常⻅的并发 问题。主要的问题是同步访问共享的可变状态。协程领域对这个问题的⼀些解决⽅案类似于多线程领域 中的解决⽅案,但其它解决⽅案则是独⼀⽆⼆的。 问题 我们启动⼀百个协程, 阅读全文
posted @ 2021-03-24 13:53 王世桢 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 异常处理 本节内容涵盖了异常处理与在异常上取消。我们已经知道取消协程会在挂起点抛出 CancellationException 并且它会被协程的机制所忽略。在这⾥我们会看看在取消过程中抛出异常或同 ⼀个协程的多个⼦协程抛出异常时会发⽣什么。 异常的传播 协程构建器有两种形式:⾃动传播异常(launc 阅读全文
posted @ 2021-03-24 13:40 王世桢 阅读(92) 评论(0) 推荐(0) 编辑