coroutine
-
withContextBackEnd/coroutine 2025. 6. 14. 11:00
withContext 함수withContext 함수는 인자로 받은 CoroutineDispatcher를 사용해 코루틴의 실행 스레드를 전환하고, 람다식의 코드를 실행한 후 결과값을 반환하는 함수입니다. 람다식을 실행한 후에는 스레드가 다시 이전의 Dispatcher을 사용하도록 전환됩니다.withContext를 사용하면 코루틴이 생성되지 않습니다.import kotlinx.coroutines.*fun main() = runBlocking { val result: String = withContext(Dispatchers.IO) { delay(1000L) // 네트워크 요청 println("[${Thread.currentThread().name}] 결과값이 반환됩니다") ..
-
지연 CoroutineBackEnd/coroutine 2025. 5. 31. 03:00
지연 Coroutine지연 코루틴이란 즉시 실행 요청되지 않는 코루틴입니다.launch 함수의 start 인자로 CoroutineStart.LAZY를 넘기면 지연 코루틴이 생성됩니다.지연 코루틴은 start 함수나 join 함수를 호출하면 실행됩니다.즉시 실행만 원하면 start 함수를, 실행과 동시에 끝날 때까지 기다리려면 join 함수를 호출하면 됩니다.import kotlinx.coroutines.*fun main() = runBlocking { val startTime = System.currentTimeMillis() val lazyJob: Job = launch(start = CoroutineStart.LAZY) { println("[${getElapsedTime(startTime)}..
-
runBlockingBackEnd/coroutine 2025. 5. 5. 10:00
runBlocking runBlocking 함수는 이 함수를 호출한 스레드를 사용해 실행되는 코루틴을 만들어냅니다. runBlocking 코루틴이 종료될 때 스레드 점유가 해제됩니다. 즉, 현재 스레드를 블로킹(중단)하여 코루틴 코드를 동기적으로 실행하는 함수입니다.runBlocking = Run(실행) + Blocking(차단) 주요 특징현재 스레드를 블로킹: runBlocking { ... } 블록 내 모든 작업이 끝날 때까지 해당 스레드를 멈춥니다.코루틴 월드로 진입: 일반 함수(main 등)에서는 launch, async 같은 코루틴 빌더를 바로 사용할 수 없습니다. runBlocking을 사용하면 코루틴 스코프가 생성되어, 그 안에서 launch, async 등 코루틴 관련 함수를 사용할 수 ..
-
Coroutine 등장 배경BackEnd/coroutine 2025. 5. 3. 22:00
Overview 인프런- 코틀린 코루틴 완전 정복 강의를 수강하고 정리합니다.강의 소스 코드 GitHub - HanseomKim/coroutinelecture: 『코틀린 코루틴 완전 정복』, 조세영, 인프런(2024) 저장소 입니다.『코틀린 코루틴 완전 정복』, 조세영, 인프런(2024) 저장소 입니다. Contribute to HanseomKim/coroutinelecture development by creating an account on GitHub.github.com 단일 스레드 애플리케이션 스레드 하나만 사용해 실행되는 애플리케이션입니다. 단일 스레드 애플리케이션의 한계 스레드는 한 번에 하나의 작업밖에 수행하지 못하기 때문에, 한 작업이 오래 걸리는 경우 문제가 됩니다. 메인 스레드 또..