Icyrockton
resume
suspend fun a() { println("call a") } suspend fun b() { println("call b") } val executor = Executors.newSingleThreadScheduledExecutor() suspend fun test() { println(Thread.currentThread().name) a() val g = suspendCoroutine<Int> { continuation -> executor.schedule({ println("call resume!!! ${Thread.currentThread().name}") continuation.resume(20) }, 1, TimeUnit.SECONDS) COROUTINE_SUSPENDED } println(g) b() } suspend fun main() { test() println("test done!") }
Sam
executor.shutdown()
COROUTINE_SUSPENDED
A modern programming language that makes developers happier.