@Test
fun `test cancel and exception`() = runBlocking<Unit> {
val job1 = launch {
val child = launch {
try {
delay(Long.MAX_VALUE)
} finally {
println("Child is cancelled.")
}
}
yield()
println("取消子协程")
child.cancelAndJoin()
yield()
println("父协程没有被取消")
}
job1.join()
}
@Test
fun `test cancel and exception