[kotlin] 쓰레드 관리하기
Kotlin은 코루틴이라는 유연하고 가벼운 쓰레드 관리 기능을 제공하여 비동기 처리를 보다 쉽게 할 수 있게 합니다. 코루틴은 기존의 쓰레드보다 효율적이며 가독성이 높은 코드를 작성할 수 있도록 해 줍니다.
1. 코루틴 기본
코루틴은 launch
, async
, runBlocking
등의 빌더 함수를 사용하여 생성할 수 있습니다.
import kotlinx.coroutines.*
fun main() {
GlobalScope.launch { // 백그라운드 쓰레드에서 실행
delay(1000) // 비동기 작업 수행
println("World") // 결과 출력
}
println("Hello,") // 메인 쓰레드에서 실행
Thread.sleep(2000) // 메인 쓰레드가 너무 먼저 종료되지 않도록 대기
}
2. 예외 처리
코루틴은 예외 처리도 간편합니다.
import kotlinx.coroutines.*
fun main() = runBlocking {
val job = GlobalScope.launch {
println("Throwing exception from launch")
throw IndexOutOfBoundsException() // 예외 발생
}
job.join()
println("Joined failed job")
}
3. 데이터 반환
async
를 사용하여 값을 반환받을 수 있습니다.
import kotlinx.coroutines.*
fun main() = runBlocking {
val deferred: Deferred<Int> = GlobalScope.async {
delay(1000)
42
}
println("The answer is ${deferred.await()}")
}
Kotlin 코루틴은 쓰레드 관리에서 생산적이며 가독성이 뛰어나므로 비동기 작업을 보다 쉽게 다룰 수 있습니다.
더 자세한 내용은 Kotlin 공식 문서에서 확인할 수 있습니다.