11-协程取消
12.3.5 协程取消
每一个协程都可以被看作是一个任务,可以在协程外部控制它的运行。如果要取消协程,则可以使用cancel()函数。
fun main(args: Array<String>) = runBlocking<Unit> {
val job = launch(CommonPool) {
delay(1000L)
println("World!")
}
println("Hello,")
job.cancel()
}
调用job.cancel可以直接终止job的执行,如果job已经执行完毕,那么调用job.cancel的执行将变得没有意义,否则可以根据cancel的返回值来判断是否取消成功。