개발/안드로이드

[Android] Coroutine(기초)

도넛의용기 2023. 5. 30. 15:50

비동기 처리는 프로그래밍을 하는데 있어서 굉장히 중요한 요소입니다.

 

우리는 서버 작업등을 할 때 백스레드와 같이 스레드를 하나 더 만들어 비동기 처리를 합니다.

네트워크 통신과 같은 시간이 오래걸리는 작업을 할 때 UI가 멈추면 안되기 때문에 비동기로 네트워크 통신과 앱 동작을 구현합니다. 구글에서는 비동기처리를 함에 있어서 코루틴 사용을 굉장히 중요시합니다. 

 

코루틴은 CO 루틴으로 협동 루틴이라는 뜻입니다.

코루틴의 장점으로는 다음과 같습니다.

  • 메모리 사용량이 적어서 대규모 데이터 처리에도 유용합니다.
  • 스레드와 달리 컨텍스트 스위칭 오버헤드가 적어서 빠른 성능을 보장합니다.
  • 코드 가독성이 좋아서 유지보수가 용이합니다.
import kotlinx.coroutines.*

fun main() {
    println("Main starts: ${Thread.currentThread().name}")
    GlobalScope.launch {
        println("Coroutine starts: ${Thread.currentThread().name}")
        delay(1000)
        println("Coroutine ends: ${Thread.currentThread().name}")
    }
    Thread.sleep(2000)
    println("Main ends: ${Thread.currentThread().name}")
}

이 코드는 메인 스레드와 코루틴이 병행으로 실행되는 예제입니다.

메인 스레드에서 GlobalScope.launch 함수를 사용하여 코루틴을 실행하고,

delay 함수를 사용하여 1초 동안 대기한 후 코루틴을 종료합니다.

메인 스레드에서는 Thread.sleep 함수를 사용하여 2초 동안 대기한 후 프로그램을 종료합니다.

 

 

 

'개발 > 안드로이드' 카테고리의 다른 글

[Android] 모듈: 코드의 재사용  (1) 2023.08.09
[Android] 패키지 구조  (4) 2023.08.09
[Android] Utility  (0) 2023.05.30
[Android] Android Weekly  (0) 2023.05.28
[Android] 모듈화로 빌드시간을 줄인다?  (2) 2023.05.28