쓰레드: 쓰레드를 생성해서 동시에 로직을 실행할 수 있다
쓰레드를 사용하기 위해 필요한 작업이 하나 있다
https://github.com/Kotlin/kotlinx.coroutines#android
위 사이트에 들어가서..
해당 부분의 implementation을 복사한 뒤..
Android Studio -> Gradle Scripts -> build.gradle.kts (Module :app)에 들어가서..
알맞은 부분에 붙여넣기 하고..
Sync Now를 눌러 적용시키면 된다. 외부 종속성을 추가했다
외부 종속성 추가 이후 예시 코드를 실행하려는 모습. Unresolved reference가 떴다고 당황하지 말고
해당 글씨에 마우스를 올린 뒤 Alt + Shift + Enter를 눌러 Import 해주면 된다
코루틴
코루틴의 특징
1) 최적화된 비동기 함수 사용
2) 하드웨어 자원의 효율적인 할당
3) 안정적인 동시성, 비동기 프로그래밍
4) 쓰레드보다 더 가볍게 사용 가능
코루틴 사용 예시
위의 예시 코드를 사용할 때 문제점이 하나 있다. 안드로이드와 달리 명령 프롬프트는 실행 후 바로 종료되는 JVM 환경이기 때문에, main 함수가 delay 3초를 기다리지 못하고 바로 종료되어 원하는 결과를 얻을 수 없다.
이와 같은 문제를 해결하기 위해 실습할 때에는 join 메소드를 활용한다
쓰레드와 코루틴 3줄요약
1) 코루틴은 쓰레드를 대체하는 기술이 아니라 각자의 방법으로 동시성을 보장하는 것이다
2) 코루틴은 쓰레드보다 CPU 자원을 절약해서 사용한다(Light-Weight Thread)
3) 때문에 구글에서는 코루틴 사용을 권장하고 있다