비동기 처리는 프로그래밍을 하는데 있어서 굉장히 중요한 요소입니다.
우리는 서버 작업등을 할 때 백스레드와 같이 스레드를 하나 더 만들어 비동기 처리를 합니다.
네트워크 통신과 같은 시간이 오래걸리는 작업을 할 때 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 |