Job ? https://jutole.tistory.com/15 [Coroutine] launch란? 간단 사용법 - Kotlin launch ? launch는 코루틴 블록을 만드는 코루틴 빌더 중 하나 입니다. launch는 현재 스레드를 차단하지 않고 새로운 코루틴을 생성할 수 있습니다. 특정 결과값을 반환하지않고 Job객체를 반환 합니 jutole.tistory.com 우리는 launch라는 코루틴빌더를 이용해 코루틴을 생성하면 launch는 Job객체를 반환 해준다고 배웠다. 이때 Job은 무슨 역할을 하는 건지 알아보겠습니다. Job 상태변수 Job객체에는 3개의 상태변수가 있다. isActive = Job이 실행중인지 여부를 표시 isCancelled = Job Cancel이 요청되었는지 여부..
launch ? launch는 코루틴 블록을 만드는 코루틴 빌더 중 하나 입니다. launch는 현재 스레드를 차단하지 않고 새로운 코루틴을 생성할 수 있습니다. 특정 결과값을 반환하지않고 Job객체를 반환 합니다. launch 사용해보기 fun main() { val job = CoroutineScope(Dispatchers.IO).launch() { delay(3000) println("launch완료") } } 실행해 보면 아무것도 출력되지 않는다. 그 이유는 IOThread는 MainThread가 종료되면 같이 종료되기 때문이다. 이를 해결하기 위해서는 IOThread 작업이 완료될 때까지 MainThread에서 기다려줘야 한다. suspend fun main() { val job = Corout..
Coroutine Context는 Coroutine Dispatcher 라는 녀석을 항상 포함하는데 무엇인지 알아보겠습니다. Dispatcher Dispatch는 한국어로 "보내다" 입니다. Dispatcher는 무엇을 보내는 것입니다. 무엇을 보낼까요? 스레드(Thread)에 코루틴(Coroutine)을 보냅니다. 즉 코루틴을 만든다음에 해당 코루틴을 Dispatcher로 전송하면 Dispatcher는 자신이 관리하는 스레드풀 내의 스레드의 부하 상황에 맞춰 코루틴을 배분합니다. Android Dispatcher 안드로이드에는 Dispatcher가 이미 생성되어 있어서 별도의 Dispatcher를 생성하거나 정의하지 않아도 됩니다. Dispatchers.Default - CPU를 많이 사용하는 작업을 ..
CoroutineScope CoroutineScope는 CoroutineContext 하나만 맴버 속성으로 정의하고 있는 인터페이스 입니다. (CoroutineContext 는 Coroutine을 어떻게 처리 할지에 대한 정보를 가지고있는 객체입니다.) 코루틴의 구조적인 동시성을 위해 모든 코루틴은 CoroutineScope에서만 실행할 수 있도록 제어합니다. 모든 CoroutineBuilder는 CoroutineScope의 확장 함수로 정의된다. 이들이 Coroutine을 생성할 때는 소속된 CoroutineScope에 정의 된 CoroutineContext를 가지고 코루틴을 생성한다. CoroutineScope는 각각의 라이프 사이클을 별도로 가지고 종료를 할 수 있다. 간단사용 예제 dependen..