본문 바로가기

TIL

TIL 22일차

쓰레드: 쓰레드를 생성해서 동시에 로직을 실행할 수 있다

이해를 돕기 위한 사진.  쓰레드는 생성되서 수행할때 각 독립된 메모리 영역인 STACK 을 가진다

 

쓰레드를 사용하기 위해 필요한 작업이 하나 있다

https://github.com/Kotlin/kotlinx.coroutines#android

 

GitHub - Kotlin/kotlinx.coroutines: Library support for Kotlin coroutines

Library support for Kotlin coroutines . Contribute to Kotlin/kotlinx.coroutines development by creating an account on GitHub.

github.com

위 사이트에 들어가서..

해당 부분의 implementation을 복사한 뒤..

Android Studio -> Gradle Scripts -> build.gradle.kts (Module :app)에 들어가서..

알맞은 부분에 붙여넣기 하고..

Sync Now를 눌러 적용시키면 된다. 외부 종속성을 추가했다

외부 종속성 추가 이후 예시 코드를 실행하려는 모습. Unresolved reference가 떴다고 당황하지 말고

해당 글씨에 마우스를 올린 뒤 Alt + Shift + Enter를 눌러 Import 해주면 된다

성공적으로 Import된 모습

 

 

 

코루틴

 

코루틴의 특징

 

1) 최적화된 비동기 함수 사용

2) 하드웨어 자원의 효율적인 할당

3) 안정적인 동시성, 비동기 프로그래밍

4) 쓰레드보다 더 가볍게 사용 가능

 

코루틴 사용 예시

위의 예시 코드를 사용할 때 문제점이 하나 있다. 안드로이드와 달리 명령 프롬프트는 실행 후 바로 종료되는 JVM 환경이기 때문에, main 함수가 delay 3초를 기다리지 못하고 바로 종료되어 원하는 결과를 얻을 수 없다.

println("여기는 코루틴..") 이 실행되지 않은 모습

이와 같은 문제를 해결하기 위해 실습할 때에는 join 메소드를 활용한다

해당 함수가 끝날때까지 main함수가 종료되는 것을 막아준다
정상적으로 실행된 모습

 

 

 

쓰레드와 코루틴 3줄요약

 

1) 코루틴은 쓰레드를 대체하는 기술이 아니라 각자의 방법으로 동시성을 보장하는 것이다

2) 코루틴은 쓰레드보다 CPU 자원을 절약해서 사용한다(Light-Weight Thread)

3) 때문에 구글에서는 코루틴 사용을 권장하고 있다

'TIL' 카테고리의 다른 글

TIL 24일차  (0) 2024.03.15
TIL 23일차  (0) 2024.03.14
TIL 21일차  (0) 2024.03.12
TIL 20일차  (0) 2024.03.08
TIL 19일차  (0) 2024.03.07