Coroutine 을 사용하는 이유는 병렬처리 또는 자원의 균일한 사용이다. 이런 면에서 timeout 은 필수로 필요한 설정이 된다. Coroutine 패키지에서 제공되는 withTimeout 함수를 사용하면 손쉽게 timeout 을 설정할 수 있는데 이걸 어떤 형태로 사용하느냐에 따라 동작이 전혀 달라지기 때문에 이를 기록해 놓는다. 결론부터 말하면 아래와 같은 형태로 사용하면 된다. runBlocking(Dispatchers.IO) { repeat(5){ launch { try{ withTimeout(3000) { if (it == 1) delayRoutine(it) else normalRoutine(it) } }catch (e: Exception){ println("$it ${e.message}"..