fun main(args: Array<String>) = runBlocking {
val job = GlobalScope.launch(start = CoroutineStart.LAZY) {
// TODO("Not Implemented!")
}
delay(500)
}
fun main(args: Array<String>) = runBlocking {
val job = GlobalScope.launch(start = CoroutineStart.LAZY) {
// TODO("Not Implemented!")
}
job.start() // start는 실행을 중단하지 않으므로 suspend 함수나 코루틴에서 호출할 필요가 없다.
job.join() // join은 실행을 일시 중단할 수 있으므로 코루틴 또는 일시 중단 함수에 호출해야 한다.
}
fun main(args: Array<String>) = runBlocking {
val job = GlobalScope.launch(start = CoroutineStart.LAZY) {
// TODO("Not Implemented!")
}
job.cancel()
job.cancel(cause = Exception("Timeout!")) // 예외가 취소의 원인일 때는 원인을 같이 제공해 주면 나중에 찾아볼 수 있다.
}
fun main(args: Array<String>) = runBlocking {
val job = GlobalScope.launch(start = CoroutineStart.LAZY) {
// TODO("Not Implemented!")
}
job.cancel()
val cancellation = job.getCancellationException()
printf(cancellation.message)
}
fun main(args: Array<String>) = runBlocking {
val exceptionHandler = CoroutineExceptionHandler {
_: CoroutineContext, throwable: Throable ->
println("Job cancelled due to ${throwable.message}")
}
GlobalScope.launch(exceptionHandler) {
// TODO("Not Implemented!")
}
delay(2000)
}
fun main(args: Array<String>) = runBlocking {
GlobalScope.launch {
// TODO("Not Implemented!")
}.invokeOnCompletion { cause ->
case?.let {
println("Job cancelled due to ${it.message}")
}
}
delay(2000)
}
fun main(args: Array<String>) = runBlocking {
val headlinesTask = GlobalScope.async {
getHealines
}
headlinesTask.await()
}
fun main(args: Array<String>) = runBlocking {
val deffered = GlobalScope.async {
TODO("Not implemented yet!")
}
try {
headlinesTask.await()
} catch (throwable: Throable) {
println("Deferred cancelled due to ${throwable.message}")
}
}